软件环境:CentOS X86-64版
很多网上的教程说,如果Rsync要做服务器端,要先装Xinetd,其实大可不必。rsync这个程序是集客户端和服务器于一身的。只要在启动的时候加上【–daemon】参数(注意,是两个短中划线),就可以作为服务器端运行。当然,我们需要一个配置文件来对它的运行做一些设置。这个文件现有系统中没有,需要手动新建。
#vi /etc/rsyncd.conf
lock file = /var/run/rsync.lock /*运行的锁文件*/
log file = /var/log/rsyncd.log /*生成的日志文件*/
pid file = /var/run/rsyncd.pid /*pid文件*/
[backup] /*这个是资源名称,在同步的时候会用到*/
path = /var/vhosts/wawa81 /*资源的根目录*/
auth users = root /*授权使用的用户,必须是该服务器上真实存在的用户*/
uid = root
gid = root
secrets file = /etc/pwdss.srv /*密码文件,采用“用户名:密码”的格式(中间是英文冒号)*/
read only = no /*是否只读的设置*/
|
如果有多个资源需要同步,将[backup]的部分,按照实际需要新建一份,起一个不同的名字就可以了。如下
[web] path = /home/admin/public_html comment = Mirror to Hk server read only = true list = false auth users = lixiphp |
rsyncd.conf的共同部分设置还有很多,如有关日志格式的设置,在这里我没做设置,因此没写入文件中。如下可做参考
max connections = 4 read only = true #hosts allow = 202.207.177.180 hosts allow = * transfer logging = true log format = %h %o %f %l %b slp refresh = 300 |
采用rsync –daemon –config=/etc/rsyncd.conf的命令行格式,就可以让rsync以服务器模式,并按照配置文件的约束运行。
创建一个密码记录文件,存放的路径和名字任意。这个文件存在的意义在于如果在计划任务的时候,可以从该文件中获取密码,使计划任务可以自动运行。
/etc/pwdss.srv
root:123456 |
设置权限为只读:
chmod 600 /etc/pwdss.srv
服务器端配置成功,接下来配置客户端
创建一个密码记录文件,存放的路径和名字任意。这个文件和服务器端的是配套的,格式是只写密码就可以了。
/etc/pwdss
123456 |
设置权限为只读:
chmod 600 /etc/pwdss
rsync -aqzH –progress –delete –password-file=/etc/pwdss rsync://root@192.168.210.152/backup /var/vhosts/wawa81
–password-file这里填写的是客户端的密码文件
rsync://root@192.168.210.152/backup 这里的root要和rsyncd.conf中【backup】里的auth users一致,backup就是前面提到的资源名称,192.168.210.152是服务器的IP或者域名
/var/vhosts/wawa81,是备份到本地的目录。
以“拉”模式同步文件
rsync -avz –delete rsync://root@192.168.210.152/backup /var/vhosts/wawa81 –password-file=/etc/pwdss
计划任务设置(这个还没设置过)
创建backup目录存放备份脚本
mkdir /var/backup
vi /var/backup/sync.sh
#/bin/sh
rsync -aqzH –progress –delete –password-file=/etc/pwdss rsync://root@192.168.210.152/backup /var/vhosts/wawa81
|
添加定时任务:
crontab -e
*/1 * * * * /var/backup/sync.sh > /dev/null 2>&1