rsync文件同步介绍

rsync作用:

1、同步文件(只同步有差异的文件列表)
2、异地备份
3、触发型的更新:sersync + rsync

用于 rsync 在远程多台主机间作文件同步

server1<---------->server2
从server1同步一个文件列表(10个文件)至server2

rsync同步文件的原理:
1、在server1上扫描10个文件,并且得到一个md5/sha1检验值列表
2、在远程机器server2上,也扫描对应列表,到这步我们就有了两个列表(检验)
3、作为同步的客户去对比这两个列表,如果有差异的文件是需要同步,如果无差异表示源目录的文件是一致,所以不需要同步

最常见的包括两种服务实现方式:

server1(rsync+ssh)<-----ssh----->server2(sshd)
server1(rsync)<------------rsync—>server2(rsyncd)

1、基于远程shell 的程序,如OpenSSH,加密通道(慢),这是我们用得最多的文件同步方式,因为方便且安全
2、rsync 程序自身的“daemon”服务器模式,明文通道(快)。

rsync是一个客户端/服务器同体一个软件:
rsync --help --客户端模式
rsync --daemon --help --服务器模式

以下列出rsync作为客户端时几个较常用的命令选项及其含义:
-a 使用归档(archive)模式,保留文件原有的权限、属性、属主等信息,等同于使用“-rlptgoD”等多个选项的组合
-l 符号(软)连接文件仍然复制为符号连接
-H 保留硬连接文件
-r 递归模式,包含目录及子目录中所有文件
-v 显示同步过程的详细(verbose)信息
-z 在传输文件时进行压缩(gzip compress)
-o 保留文件的属主标记(仅超级用户使用)
-g 保留文件的属组标记(仅超级用户使用)
-t 保留文件的时间标记
-p 保留文件的权限标记
-D 保留设备文件及其他特殊文件
-R 保留原来绝对路径
–delete
1)–delete在rsync daemon是一定能够成功的,而SSH通道不一定成功
2)作用:删除发送端没有的而接收端有的,保证接收端跟发送端文件是一致的
–checksum 根据校验和来决定是否跳过文件(而不是根据文件大小、修改时间)

实例配置:

rsync_client(192.168.0.15)<–> rsyncd(192.168.0.20)

rsync服务器(daemon)配置:
有两种模式,独立模式/依赖模式

1.安装
rsync默认已经安装

2.配置(/etc/rsyncd.conf)

mkdir /webroot
chown nobody.nobody /webroot/
vim /etc/rsyncd.conf
uid=nobody
gid=nobody
use chroot=yes
address=192.168.0.20
port 873
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
hosts allow=192.168.0.0/24

[webroot]
path=/webroot
comment= web root share with rsync
read only=yes
dont compress=*.gz *.bz2 *.tgz *.rar *.zip	--不需要压缩的文件列表
auth users=user01 user02
secrets file=/etc/rsyncd_user.db 
vim /etc/rsyncd_user.db
user01:123
user02:456
chmod 600 /etc/rsyncd_user.db

3.启动rsync(任选其中一种):
第一种办法(依赖方式):

systemctl enable rsync
systemctl start rsync

第二种方法(独立方式):

rsync --daemon
vim /etc/rc.local
/usr/bin/rsync --daemon

4.客户端同步文件:
第一种方法:

rsync -avz --delete user01@192.168.0.20::webroot /var/tmp
Password: 
receiving file list ... done
./
a.txt
b.txt
test.tar.bz2

sent 178 bytes  received 543 bytes  288.40 bytes/sec
total size is 227  speedup is 0.31

==========
第二种方法:
命令的格式跟第一种方法不同

rsync -avz --delete rsync://user01@192.168.0.20/webroot /var/tmp
Password: 
receiving file list ... done
./
a.txt
b.txt
test.tar.bz2

sent 178 bytes  received 543 bytes  206.00 bytes/sec
total size is 227  speedup is 0.31

不需要输入密码的同步方式(适合于脚本方式调用):

vim /root/passwd.txt
123

–必须设置600的权限才能使用

chmod 600 /root/passwd.txt
rsync -avz --delete --password-file=/root/passwd.txt rsync://user01@192.168.0.20/webroot /var/tmp
receiving file list ... done
./
a.txt
b.txt
test.tar.bz2

sent 178 bytes  received 543 bytes  1442.00 bytes/sec
total size is 227  speedup is 0.31

制作crontab任务计划:

crontab -e
*/5 * * * *  /usr/bin/rsync -avz --delete --password-file=/root/passwd.db  rsync://user01@192.168.0.20/webroot/a /var/tmp &> /dev/null
  • 23
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值