前提:
两台ubuntu服务器,且两台服务器之间通信正常。
服务器需要同步的文件做好备份。
两台服务器IP分别为:192.168.1.20 和 192.168.1.30
首先,用
lsof -i:873
命令,查看端口873有没有被服务占用,如果出现如下显示,则表明sync服务已经安装。
如果没有安装sync服务的服务器,请通过执行
apt-get install sync
安装服务,如果是centos服务器,请使用
yum -y install sync
配置服务端:
服务安装好之后,/etc下没有配置文件,一般情况可以copy示例文件到/etc下
#cp /usr/share/doc/rsync/examples/rsyncd.conf /etc
然后打开这个文件:
#vi /etc/rsyncd.conf
文件全局内容配置为:
uid=rootgid=rootmax connections=36000use chroot=nolog file=/var/log/rsyncd.logpid file=/var/run/rsyncd.pidlock file=/var/run/rsyncd.lockhosts allow = 192.168.1.30hosts deny = *
下面开始配置同步域内容:
[XXX_NAME]# sync of dir pathpath=/var/www/path_name# Miss I/O errorsignore errors = yesread only = no# hosts allow = 192.168.1.30# hosts deny = *#允许的用户名auth users =username#对应的密码文件secrets file = /etc/rsyncd.secrets
修改完后在/etc/下新建一文件rsyncd.secrets
#vi /etc/rsyncd.secretsusername:passwd:wq
修改rsyncd.pass权限
#chmod 600 /etc/rsyncd.secrets
现在就可以启动rsync了
service rsync restart
启动成功后可以用
lsof -i:873
查看是否正常启动,也可以查看/var/log/rsyncd.log日志文件。
下面是客户端:
vi sync_test.sh rsync -avz --progress --password-file=/etc/rsyncd.passwd username@192.168.1.20::XXX_NAME /path_name/
新建密码文件:
vi /etc/rsyncd.passwdpasswd:wdchmod 600 /etc/rsyncd.passwd (很重要,如果权限不对,会造成同步失败)
执行sh文件,查看效果
sh sync_test.sh
如果服务器有防火墙,请自行把873端口开放
常用参数列表:
-v :观察模式,可以列出更多的资讯; -q :与 -v 相反,安静模式,输出的资讯比较少; -r :递回复制!可以针对"目录"来处理!很重要! -u :仅更新 (update),不会覆盖目标的新档案; -l :复制连结档的属性,而非连结的目标原始档案内容; -p :复制时,连同属性 (permission) 也保存不变! -g :保存原始档案的拥有群组; -o :保存原始档案的拥有人; -D :保存原始档案的装置属性 (device) -t :保存原始档案的时间参数; -I :忽略更新时间 (mtime) 的属性,档案比对上会比较快速; -z :加上压缩的参数! -e :使用的通道协定,例如使用 ssh 通道,则 -e ssh -a :相当于 -rlptgoD ,所以这个 -a 是最常用的参数了! --progress:在传输时显示传输过程 --delete:删除那些客户端存在而服务端已经不存在的文件