Rsync的工作方式
单个主机本地之间的数据传输(此时类似于cp命令的功能)。
借助rcp,ssh等同到来传输数据(此时类似于scp命令的功能)。
以守护进程(socket)的方式传输数据(这个是rsync自身的重要的功能)。
Rsync 常用参数 -avz或者-vzrtopg
-v 详细模式输出,传输时的进度等信息
-z 传输时进行压缩以提高传输效率,--compress-level=NUM 可按级别压缩
-a 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rtopgDl.
-r 对子目录以递归模式
-t 保持文件时间信息
-o 保持文件属主信息
-p 保持文件权限
-g 保持文件属组信息
-P 显示同步的过程及传输时的进度等信息
-D 保持设备文件信息
-l 保留软链接
-e 指定通道
--exclude=PATTERN exclude files matching PATTERN
--exclude-from=FILE read exclude patterns from FILE
cp -a /etc/hosts /tmp/ rsync -avz /etc/hosts /tmp/ rsync --delete /null/ tmp/
推送scp /etc/hosts ***@********:/tmp/ 推送rsync -avz -e 'ssh ' /etc/hosts ***@********:/tmp/ 拉取scp ***@********:/etc/hosts /tmp/ 拉取rsync -avz -e 'ssh ' ***@********:/etc/hosts /tmp/
守护进程方式备份拓扑
服务端:
创建配置文件/etc/rsyncd.conf
#rsyncd_config start
uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid #进程号保存地址
lock file = /var/run/rsyncd.lock#锁(上厕所)
log file = /var/log/rsyncd.log
[Boris]
path = /Boris/
ignore errors
read only = false
list = false
hosts allow = 10.0.0.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
#rsync_config end
默认端口是873
mkdir /Boris useradd rsync -s /sbin/nologin chown -R rsync.rsync /Boris echo "rsync_backup:Boris" > /etc/rsync.password chmod 600 /etc/rsync.password
关闭Selinux,iptables
启动
rsync --daemon
客户端:
echo "Boris" > /etc/rsync.password#客户端secrets文件只有密码 chmod 600 /etc/rsync.password
拉:
1.rsync -avz rsync_backup@*****::Boris /data --password-file=/etc/rsync.password #密码为虚拟用户密码 2.rsync -avz rsync://rsync_backup@*****/Boris /data --password-file=/etc/rsync.password
推:
1.rsync -avz /data/ rsync_backup@*****::Boris --password-file=/etc/rsync.password #密码为虚拟用户密码 2.rsync -avz /data/ rsync://rsync_backup@*****//Boris --password-file=/etc/rsync.password
重启rsync
pkill rsync #关闭rsync服务 kill `cat /var/run/rsyncd.pid` rsync --daemon #启动rsync服务 ps -ef | grep rsync #检测rsync服务
日志检查
cat /var/log/rsyncd.log
排除文件:
客户端排:
--exclude=**
--exclude-from=FILE
排除单个:
rsync -avz --exclude=a /data/ rsync_backup@*****::Boris --password-file=/etc/rsync.password
排除多个:
rsync -avz --exclude={a,b} /data/ rsync_backup@*****::Boris --password-file=/etc/rsync.password
服务端:
vim /etc/rsyncd.conf
加入 exclude = a b c/d
无差异备份:风险较大
--delete
多模块:
创建配置文件/etc/rsyncd.conf
#rsyncd_config start
uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid #进程号保存地址
lock file = /var/run/rsyncd.lock#锁(上厕所)
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 10.0.0.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
[Boris]
path = /Boris/
[data]
path = /data/
#rsync_config end
Inotify的工作方式:
由inotify监控变化从而调用rsync同步数据。