ync进行下使用rs数据备份

对于运维人员来说,数据备份是最重要的工作之一,rsync就是一款通过网络备份重要数据的工具/软件。

rsync同样是一个在类Unix和Window系统上通过网络在系统间同步文件夹和文件的网络协议,它可以复制或者显示目录并复制文件。rsync默认监听TCP 873端口,通过远程shell如rsh和ssh复制文件。同时要求必须在远程和本地系统上都安装rsync。

rsync是Linux系统下的文件同步和数据传输工具,它采用“rsync”算法,可以将一个客户机和远程文件服务器之间的文件同步,也可以在本地系统中将数据从一个分区备份到另一个分区上。如果rsync在备份过程中出现了数据传输中断,恢复后可以继续传输不一致的部分。rsync可以执行完整备份或增量备份.

rsync的主要优点是:

速度:最初会在本地和远程之间拷贝所有内容。下次,只会传输发生改变的块或者字节。

安全:传输可以通过ssh协议加密数据。

低带宽:rsync可以在两端压缩和解压数据块。

虚拟机Linux环境环境:

服务器1:192.168.216.161

服务器2:192.168.216.162

Linux安装:

官网:https://rsync.samba.org/

123456789101112131415##编译安装[root@191 ~]# wget -O rsync-3.1.3.tar.gz  https://download.samba.org/pub/rsync/src/rsync-3.1.3.tar.gz[root@191 ~]# mv rsync-3.1.3.tar.gz /usr/local/src/[root@191 ~]# cd /usr/local/src/[root@191 src]# tar -zxvf rsync-3.1.3.tar.gz[root@191 src]# cd rsync-3.1.3/[root@191 rsync-3.1.3]# ./configure --prefix=/usr/local/rsync[root@191 rsync-3.1.3]# make && make install[root@191 rsync-3.1.3]# cd /usr/local/rsync/bin##查看安装[root@191 bin]# ./rsync -hrsync  version 3.1.3  protocol version 31Copyright (C) 1996-2018 by Andrew Tridgell, Wayne Davison, and others.Web site:

配置rsync-server(192.168.216.161)

1.配置rsyncd.conf

12345678910111213141516171819[root@191 bin]# cd /usr/local/rsync[root@191 rsync]# touch /usr/local/rsync/rsyncd.conf        ##手动创建[root@191 rsync]# vim /usr/local/rsync/rsyncd.confuid = rootgid = rootuse chroot = nomax connections = 1024pid file /var/run/rsyncd.pidlog file /var/log/rsyncd.loghosts allow = 192.168.216.162[www]path = /data/www/comment = testignore errors = trueread only = nolist = noauth users = mengsecrets file /usr/local/rsync/rsyncd.secrets

这里的hosts allow 我设置192.168.216.162,也就是我的客户端机器ip,auth users 这里我设置成root(客户端的用户),path 为同步文件存放目录。

2.配置rsyncd.secrets

1234[root@191 rsync]# touch /usr/local/rsync/rsyncd.secrets        ##手动创建[root@191 rsync]# vim /usr/local/rsync/rsyncd.secretsmeng:123456                                                    ##格式为用户:密码[root@191 rsync]# chmod 600 /usr/local/rsync/rsyncd.secrets    ##注意:此文件权限必须设置:600

3.配置rsyncd.motd (配置欢迎语文件(可选)

123[root@191 rsync]# touch /usr/local/rsync/rsyncd.motd[root@191 rsync]# vim /usr/local/rsync/rsyncd.motdwelcome use rsync service

4.启动rsyncd

1[root@191 rsync]# /usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsyncd.conf

5.查看rsyncd进程,命令如下:

123[root@191 rsync]# ps -aux |grep rsyncdroot       7050  0.0  0.0 108444   636 ?        Ss   22:38   0:00 /usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsyncd.confroot       7052  0.0  0.1 112728  1000 pts/0    S+   22:38   0:00 grep --color=auto rsyncd

6.检查是否已经成功启动:

1234[root@191 rsync]# netstat -lnp|grep 873tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      3001/rsynctcp6       0      0 :::873                  :::*                    LISTEN      3001/rsync[root@191 rsync]#

7.配置rsync开机启动:

12345678910[root@191 rsync]# vim /etc/rc.d/rc.local/usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsyncd.conf[root@191 rsync]# chmod +x /etc/rc.d/rc.local[root@191 rsync]# ps -aux |grep rsyncdroot       6165  0.0  0.0 108448   636 ?        Ss   20:33   0:00 /usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsyncd.confroot       6287  0.0  0.0 112728   972 pts/0    S+   20:38   0:00 grep --color=auto rsyncd[root@191 rsync]# shutdown -h now[root@191 ~]# ps -aux |grep rsyncdroot       1154  0.0  0.0 108448   636 ?        Ss   20:38   0:00 /usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsyncd.confroot       1958  0.0  0.0 112732   972 pts/0    S+   20:39   0:00 grep --color=auto rsyncd

 

client端安装配置(192.168.216.162)

1.安装rsync(yum安装)

12345678[root@192 ~]# yum -y install rsync[root@192 ~]# systemctl start rsyncd.service       ##启动rsync服务 [root@192 ~]# systemctl enable rsyncd.serviceCreated symlink from /etc/systemd/system/multi-user.target.wants/rsyncd.service to /usr/lib/systemd/system/rsyncd.service.[root@192 ~]# netstat -lnp|grep 873                ##检查是否已经成功启动tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      3181/rsynctcp6       0      0 :::873                  :::*                    LISTEN      3181/rsync[root@192 ~]#

        首先,配置文件在:/etc/rsyncd.conf

123456789101112131415161718[root@192 etc]# vim /etc/rsyncd.conf        uid = root        # //设置运行rsync 进程的用户        gid = root        use chroot = no        max connections = 4        # pid file = /var/run/rsyncd.pid        #//CentOS7中yum安装不需指定pid file 否则报错        lock file=/var/run/rsyncd.lock        log file /var/log/rsyncd.log        # //此文件定义完成后系统会自动创建        exclude = lost+found/        transfer logging = yes        timeout = 900        ignore nonreadable = yes        # //同步时跳过没有权限的目录        dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2        # //传输时不压缩的文件

        客户端建立密码文件

12[root@192 etc]# vi /etc/rsyncd.passwd123456

注意:

1、这里的密码,与服务端设置的密码相同,就是通过这个密码连接服务端的

2、然后切记修改改密码文件的权限(密码文件权限属性要设得只有属主可读)

123456[root@192 etc]# chmod 600 /etc/rsyncd.passwd[root@192 ~]# systemctl restart rsyncd.service[root@192 ~]# systemctl status rsyncd.service[root@192 ~]# systemctl stop rsyncd.service[root@192 ~]# systemctl start rsyncd.service[root@192 ~]# systemctl  rsyncd.service

常用命令:

【客户端从服务端远程拉取文件】

1234567891011121314151617181920##1、客户端从服务器端拉取www模块下的文件到/data/www/[root@192 ~]# rsync -avz meng@192.168.216.161::www --password-file=/etc/rsyncd.secrets /data/www/注意:root 是用户  www 是认证模块  --password-file 加载密码文件(和服务器密码相同)##2、让客户端与服务器保持完全一致, --delete[root@192 ~]# rsync -avzP --delete  meng@192.168.216.161::www --password-file=/etc/rsyncd.secrets /data/www/##3、客户端从服务端远程拉取文件并显示进度[root@192 ~]# rsync -avz --progress  meng@192.168.216.161::www --password-file=/etc/rsyncd.secrets /data/www[root@192 ~]# rsync -avzP meng@192.168.216.161::www --password-file=/etc/rsyncd.secrets /data/www-a --参数,相当于-rlptgoD,-r --是递归-l --是链接文件,意思是拷贝链接文件-i --列出 rsync 服务器中的文件-p --表示保持文件原有权限-t --保持文件原有时间-g --保持文件原有用户组-o --保持文件原有属主-D --相当于块设备文件-z --传输时压缩-P --传输进度-v --传输时的进度等信息,和-P有点关系

【客户端推送文件到远程服务器】

123456789101112131415161718192021222324252627##1、上传客户端文件至服务端[root@localhost ~]# rsync -avz /data/www/5.txt  meng@192.168.216.161::www --password-file=/etc/rsyncd.secrets##2、上传客户端文件至服务端的 george 目录[root@localhost ~]# rsync -avz /data/www/  meng@192.168.216.161::www/src --password-file=/etc/rsyncd.secrets##3、递归列出服务端 www 模块的文件[root@localhost ~]# rsync -ir --delete  meng@192.168.216.161::www --password-file=/etc/rsyncd.secrets##4、同步除了路径以及文件名中包含 “5” *的所有文件[root@localhost ~]# rsync -avzP --exclude="*5*"  meng@192.168.216.161::www --password-file=/etc/rsyncd.secrets /data/www##5、客户端自动同步(每分钟自动同步一次)[root@localhost ~]# crontab -e*/1 * * * * rsync -avzP  meng@192.168.216.161::www --password-file=/etc/rsyncd.secrets /data/www客户端本地同步##6、将 src 目录里的所有的文件同步至 dest 目录(不包含src本身)[root@localhost ~]# rsync -avz --progress  /data/www/src/ /data/www/test/##7、将 src 目录包括自己整个同步至 dest 目录[root@localhost ~]# rsync -avz --progress  /data/www/src /data/www/test/##8、即使 src 后面接有 / ,效果同上[root@localhost www]# rsync -avR src/ test/局域网间同步(192.168.216.161  192.168.216.162)##9、远程同步至本地,需输入root密码[root@localhost www]# rsync -av 192.168.216.161:/data/www/ dest/##10、本地文件同步至远程[root@localhost www]# rsync -av test/ 192.168.216.161:/data/www/##11、整个目录同步过去[root@localhost www]# rsync -av test 192.168.216.161:/data/www/##12、从目标目录里面删除无关的文件(从客户端删除服务器192.168.216.161 /data/www/ 目录下的 src目录 )[root@localhost www]# rsync -av --delete src/ 192.168.216.161:/data/www/ --delete

1590325395939643

12345678910示例: 1 - 启用压缩[root@localhost /]# rsync -zvr /home/aloft/ /backuphomedir上面的rsync命令使用了-z来启用压缩,-v是可视化,-r是递归(即对子目录以递归的模式处理)。上面在本地的/home/aloft//backuphomedir之间同步。示例: 2 - 保留文件和文件夹的属性[root@localhost /]# rsync -azvr /home/aloft/ /backuphomedir上面我们使用了-a选项,它保留了所有人和所属组、时间戳、软链接、权限,并以递归模式运行。示例: 3 - 找出文件间的不同[root@localhost /]# rsync -avz /home/aloft/ azmath@192.168.1.4:192.168.1.4:/share/rsysnctest/上面的命令帮助你找出源地址和目标地址之间文件或者目录的不同。

增量备份:

1[root@localhost www]# rsync -vzrtopg --progress --delete meng@192.168.216.163::www /data/www/ --password-file=/etc/rsyncd.secrets
上一篇:白萝卜不要腌着吃了,简单一拌,酸辣开胃,1个小时就能吃
下一篇:蘑菇不熟吃了有毒吗 蘑菇没煮熟会中毒吗