检查rsync 是否已经安装
rpm -qa|grep rsync
若已经安装,则使用rpm -e
命令卸载。
安装rsync
yum install rsync
rsync主要分为三个配置文件,分别是:
配置文件
vi /etc/rsyncd.conf
配置如下
# GLOBAL OPTIONS
uid = root
gid = root
use chroot = no
read only = no
#limit access to private LANs
hosts allow=*
max connections = 5
pid file = /var/run/rsyncd.pid
secrets file = /etc/rsyncd.secrets
motd file = /etc/rsyncd.motd
#This will give you a separate log file
log file = /var/log/rsync.log
#This will log every file transferred - up to 85,000+ per user, per sync
transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
# MODULE OPTIONS
[zjhome]
path = /root/
list=yes
ignore errors
auth users = zj
comment = root_home
exclude = important/
[myblog]
path = /data/myblog/
list=no
ignore errors
auth users = zj
comment = tmp_china
注:
auth users = zj
这是虚拟用户 系统上不需要添加。
用户密码配置文件
vi /etc/rsyncd.secrets
内容
zj:123456
为了密码的安全性,我们必须把权限设为600
chown root:root /etc/rsyncd.secrets
chmod 600 /etc/rsyncd.secrets
建立连接到服务器的客户端看到的欢迎信息
vi /etc/rsyncd.motd
如果服务器上装有防火墙,需在服务器中设置iptables将837端口开放。
iptables -A INPUT -p tcp --dport 873 -j ACCEPT
启动rsync服务端(独立启动)
rsync --daemon --config=/etc/rsyncd.conf
默认路径就是etc/rsyncd.conf
所以配置路径可以省略
rsync --daemon
查看873端口是否起来
netstat -an | grep 873
# 或者
netstat -a | grep rsync
如果rsync启动成功的话可以看到873端口已经在监听了。
设置开机启动 rsync服务:
echo "rsync --daemon" >> /etc/rc.local
lsof -i:873
kill pid
Windows客户端
链接:https://pan.baidu.com/s/1RbPZ6RntpzF3dJ5HLKkRUQ 提取码:psvm
D:\Program Files (x86)\cwRsync\bin
Windows下使用cwRsync
的时候所有路径前面要添加上/cygdrive
。
Server => Local
/usr/bin/rsync -vzrtopg --progress --password-file=/cygdrive/d/auth.txt --delete zj@192.168.7.101::zjhome /cygdrive/d/Pic/
Local => Server
/usr/bin/rsync -vzrtopg --progress --password-file=/cygdrive/d/auth.txt /cygdrive/d/Pic/ zj@192.168.7.101::zjhome
rsync -avzP /cygdrive/d/Pic/ zj@192.168.160.101::zjhome
配置本地密码文件
在D盘根目录添加文件auth.txt
,内容
123456
同步
rsync -avzP --password-file=/cygdrive/d/auth.txt /cygdrive/d/Pic/ zj@192.168.160.101::zjhome
rsync -avzP --delete zj@192.167.7.101::zjhome /tmp/david/
我们引入一个 --delete
选项,表示服务器上的数据要与客户端完全一致,如果 /tmp/david/目录中有服务器上不存在的文件,则删除。
最终目的是让/tmp/david/目录上的数据完全与服务器上保持一致;用的时候要小心点,最好不要把已经有重要数所据的目录,当做本地更新目录,否则会把你的数据全部删除;
tail /var/log/rsync.log
-a 参数,相当于-rlptgoD,
-r 是递归 -l 是链接文件,意思是拷贝链接文件;
-p 表示保持文件原有权限;
-t 保持文件原有时间;
-g 保持文件原有用户组;
-o 保持文件原有属主;
-D 相当于块设备文件;
-z 传输时压缩;
-P 传输进度;
-v 传输时的进度等信息,和-P有点关系
编辑crontab
crontab -e
加入如下代码:
10 0 * * * rsync -avzP --delete --password-file=/tmp/rsync.password zj@192.168.7.101::zjhome /cygdrive/d/Pic/
Could not create directory ‘/home/Administrator/.ssh’
添加环境变量
HOME=C:\Users\Administrator
uid 4294967295 (-1) is impossible to set on
这是Windows和Linux文件所属用户不一致导致的,目前还没有解决方法,也就是说
目前还没用通过SSH认证来使用Rsync的方式。