d.conf文件,内容也空也无所谓,否则在运行rsync时会出现如下报错:
[root@sqing24 ~]# rsync --daemon
Failed to parse config file: /etc/rsyncd.conf
但如果是系统默认安装或yum安装的,则不存在此问题.
2、手动同步数据,手动输入密码
[root@sqing24 ~]#rsync -azvr --progress --delete root@10.8.5.25::home /home/server25
~~Welcome to 10.8.5.25!
Password:
receiving file list ...
3、手动同步数据, 指定密码文件
新建并编辑rsyncd.pas文件,用于存放登录用户的登录密码,这样可以在脚本中使用而无需交互式地输入验证密码.
[root@sqing24 ~]# vi /etc/rsyncd.pas
内容如下:
123456
[root@sqing24 ~]# chmod 600 /etc/rsyncd.pas
[root@sqing24 ~]#rsync -azvr --progress –delete --password-file=/etc/rsyncd.pas root@10.8.5.25::home /home/server25
~~Welcome to 10.8.5.25!
receiving file list ...
4、客户端自动同步数据
rsync是通过crond这个后台进行(计划任务)来实现自动同步数据,CentOS5.5下默认安装并运行crond服务器,可以通过以下命令查看
[root@sqing24 ~]# rpm -qa |grep cron //查看crond是否安装
[root@sqing24 ~]# ps aux |grep crond //相看crond是否运行
在tmp目录下建一个backup.sh文件
[root@sqing24 ~]# vi /tmp/backup.sh
内容如下:
#!bin/sh
rsync –azvr --delete --password-file=/etc/rsyncd.pas root@10.8.5.25::home /home/server23
需要注意的是,/etc/rsyncd.pas文件的属性要为600,这在先前的操作中已经设置过了.
修改crontab制定任务计划,使其定时调度并运行backup.sh脚本,
[root@sqing24 ~]# crontab –e
内容如下:
* * * * * sh /tmp/backup.sh //表示每隔一分钟运行一次脚本
新创建的crontab文件会放在/var/spool/cron目录下,文件名就是用户名,用cd /var/spool/cron后 会看到用户文件,然后用 cat root(当前是root登录)可以看到“* * * * * sh /tmp/backup.sh”已经被转到这里了.
5、部分参数说明
root@10.8.5.25:/home/backup 服务器端的用户名和模块
/home/backup24 指定客户端存放备份文件的路径
-v,-verbose 详细模式输出
-z,-compress 压缩
-r,-recursive 对子目录以递归模式处理
-topg 保持文件的原有属性,如属主、时间等参数
-c,-checksum 打开校验开关,强制对文件传输进行校验
-a,-archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-R,-relative 使用相对路径信息
-q,-quiet 精简输出模式
--progress 显示出详细的进展情况
--delete 如果服务器删除了这一文件,客户算也会相应的把文件删除,保持真正的一致
--exclude 不包含某些文件
五、rsync问题解决
开始时,客户端访问服务器端,直接访问的是待备份的目录,命令如下
[root@sqing24 ~]#rsync -azvr --progress --delete root@10.8.5.25:/home/backup /home/backup24
在输入密码时,rsyncd.pas中设置的密码是无效的,只有该用户在系统中的密码才有效,一直以为是密码设置上出了问题,但就是改不过来.后来发现,后来又发现,待备份文件如果采用模块名称,即“username@需要备份的主机IP::备份里的模块名称”时,用户根本就无法连接:
[root@sqing24 ~]#rsync -azvr --progress --delete root@10.8.5.25::home --exclude=".sh" /home/server25
rsync: failed to connect to 10.8.5.25: Connection refused (111)
rsync error: error in socket IO (code 10) at clientserver.c(122) [Receiver=3.0.7]
经过进一步测试,得出结论,服务器端在运行rsync –daemon命令后,实际并没有运行rsync服 |