Rsync常用的一款同步文件工具。配置也很方便。
yum install sync -y或者apt-get install sync
* 服务安装好之后,/etc下没有配置文件,一般情况可以copy示例文件到/etc下
#cp /usr/share/doc/rsync/examples/rsyncd.conf /etc
vim /etc/rsyncd.conf
[root@test150 rsyncd]# grep -v "^#" /etc/rsyncd.conf
uid = nobody
gid = nobody
use chroot = yes
max connections = 3600
log file = /var/log/rsync/rsyncd.log
motd file = /var/log/rsync/rsyncd.motd
pid file = /var/run/rsyncd.pid
secrets file = /etc/rsyncd/rsyncd.secrets
log format = %t %a %m %f %b
syslog facility = local3
strict modes=yes
timeout=300
lock file=/var/run/rsyncd.lock
hosts allow=192.168.2.151
hosts deny=*
[homeools]
path = /home/tools
list=yes
ignore errors
ayth users=rsync
comment = homeools
exclude = important/
* 建立/etc/rsyncd/rsyncd.secrets文件
#cat /etc/rsyncd/rsyncd.secrets
rsync:123456
* 为了密码的安全性,我们必须把权限设为600
# chown root:root /etc/rsyncd/rsyncd.secrets
# chmod 600 /etc/rsyncd/rsyncd.secrets
# vim /etc/rsyncd/rsyncd.motd
启动rsync:
systemctl start rsyncd.service
lsof -i:873
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rsync 28949 root 4u IPv4 3939762 0t0 TCP *:rsync (LISTEN)
rsync 28949 root 5u IPv6 3939763 0t0 TCP *:rsync (LISTEN)
至此服务器端安装完毕;
客户端安装配置:
yum -y install rsync
运行:rsync -zvaP [email protected]::hometools /tmp/test/
Password: 这里要输入rsync的密码,是服务器端提供的,在前面的例子中,我们用的是 asdf,输入的密码并不显示出来;输好后就回车; 注: 这个命令的意思就是说,用rsync 用户登录到服务器上,把hometools 数据,同步到本地目录/tmp/test/上。当然本地的目录是可以你自己定义的,比如 dave也是可以的;当你在客户端上,当前操作的目录下没有/tmp/test/这个目录时,系统会自动为你创建一个;当存在/tmp/test/这个目录中,你要注意它的写权限。
参数说明:
-a 参数,相当于-rlptgoD,
-r 是递归 -l 是链接文件,意思是拷贝链接文件;
-p 表示保持文件原有权限;
-t 保持文件原有时间;
-g 保持文件原有用户组;
-o 保持文件原有属主;
-D 相当于块设备文件;
-z 传输时压缩;
-P 传输进度;
-v 传输时的进度等信息,和-P有点关系
*
rsync -avzP --delete [email protected]::hometools /tmp/test/
–delete 选项,表示服务器上的数据要与客户端完全一致,如果 /tmp/test/目录中有服务器上不存在的文件,则删除。最终目的是让/tmp/test/目录上的数据完全与服务器上保持一致;用的时候要小心点,最好不要把已经有重要数所据的目录,当做本地更新目录,否则会把你的数据全部删除;
*
[root@151test test]# rsync -avzP -delete [email protected]::hometools /tmp/test --password-file=/etc/rsyncd/rsyncd.secrets
计划任务同步:
5/* * * * * rsync -zvaP [email protected]::hometools /tmp/test/ --password-file=/etc/rsyncd/rsyncd.secrets