rsync作用

实现文件的备份
备份位置可以是当前主机,也可以是远程主机
备份过程可以是完全备份,也可以是增量备份

rsync基本操作

安装rsync

yum install rsync

rsync常用选项

-a   #归档模式,表示递归方式传输文件,并保持所有属性;通-rlptgoD
-r   #同步目录时要加上,类似cp时加R
-v   #同步时显示一些信息,让我们知道同步国创
-l   #保留软链接
-L   #同步软链接时会把源文件给同步
-p   #保持文件权限属性
-o   #保持文件的属主
-g   #保持文件的属组
-D   #保持设备文件信息
-t   #保持文件的时间属性
-P   #显示同步过程,比如速率,比-v更加详细
-u   #增量同步,如果DEST中的文件比SRC新,则不同步
-z   #测试时压缩
--delte    #删除DEST中SRC没有的文件
--exclude  #过滤指定文件,如--exclude “logs”会把文件log过滤掉,不同步
--bwlimit=1000 #限制传输速度

rsync使用

本地备份

rsync -av /etc/passwd /passwd  #将/etc/passwd文件备份到根目录/passwd里面

备份到远程服务器

rsync -avr /var/www/html root@172.16.0.10:/backup

#ssh被修改端口的情况下进行远程备份
rsync -avr -e "ssh -p 2222" /var/www/html root@172.16.0.10:/backup/

删除目标位置有文件而原始位置没有的文件

#将A机器/var/www/html文件夹中的文件备份到B机器/backup目录下,并删除/backup中不属于/var/www/html的文件
rsync -av --delete /var/www/html root@172.16.0.10:/backup

过滤指定文件不同步

rsync -av --exclude="*.txt" /xx/ root@172.16.0.17:/xx

断点续传

#使用scp传文件的话如果出错就得重新来过, 用rsync可以实现断点上传的功能
#如果中途出错, 再次运行同样的命令上传就可以了.
rsync -avP --rsh=ssh test 172.16.0.17:/

rsync后台服务

服务端编辑配置文件

vim /etc/rsyncd.conf  #需要自己创建文件
#全局参数
uid = user    #指定rsync进程以什么身份在后台运行,必须是系统用户,填nobody表示匿名
gid = user    #指定rsync进程以什么组身份在后台运行,填nobody表示匿名
port = 873     #用于通信的TCP端口,默认是873
fake super = yes  #服务端操作系统的用户可以不用root
use chroot = no   #安全防护,默认为true,如果有软链接文件建议设置为false
timeout = 600   #超时时间
ignore errors   #忽略错误信息
list = false   #当用户查询该服务器上可用模块时,该模块是否被列出,设置true列出,设置为false隐藏
log file = /var/log/rsyncd.log    #rsync服务运行日志文件
lock file = /var/run/rsync.lock   #锁文件的存放位置
pid file=/var/run/rsyncd.pid      #指定pid文件

#同步模块参数
[docs]   #模块名称,自定义的名称
comment = Hello world   #模块说明文字
path = /docs  #同步的目录名,必须是uid参数指定的用户和gid参数指定的组
read only = false  #read only=ture|false如果为true,则不能上传到该模块指定目录
auth users = user  #允许登录的客户端认证用户,用逗号分隔,必须是/etc/rsync.passwd文件配置的用户,密码文件的权限一定要是600
secrets file = /etc/rsync.passwd  #指定rsync客户端用户认证的密码文件
max connections =200  #指定最大连接数,默认为0表示没有限制
#hosts allow=172.16.0.1  #表示被允许连接该模块的主机,可以是IP或者网段,如果是多个,中间用格隔开
#hosts deny = 0.0.0.0/0  #禁止主机

创建用户

useradd user 

服务端创建rsync登录用户文件

touch /etc/rsyncd.passwd
echo "user:123456" >>/etc/rsyncd.passwd  #user是用户名,123456是密码
chmod 600 /etc/rsync.passwd  #密码文件权限必须是600

服务端创建同步文件夹

mkdir /docs
chown -R user:user /docs  

客户端上传文件到服务器

创建上传测试文件

mkdir sec && cd sec
head -c 100000000 /dev/zero > testa
head -c 100000000 /dev/zero > testb

上传文件到服务器上

echo "123456">>/etc/rsync.passwd
rsync -avz --password-file=/etc/rsync.passwd /sec/ user@172.16.0.17::docs

服务端查看上传是否成功

[root@localhost /]# ll -a docs/
总用量 195324
drwxrwxrwx.  2 user user        32 10月  7 03:51 .
dr-xr-xr-x. 36 root root      4096 10月  7 03:50 ..
-rw-------.  1 user user 100000000 10月  7 03:51 testa
-rw-------.  1 user user 100000000 10月  7 03:51 testb
最后修改:2020 年 10 月 12 日
如果觉得我的文章对你有用,请随意赞赏