参考文献
http://www.51testing.com/?uid-116228-action-viewspace-itemid-240205
由于服务端和客户端上已经有rsync,所以安装过程略
服务端的配置:
1、启动RSYNC
vi /etc/xinetd.d/rsync
把原来的YES改成NO
service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = –daemon
log_on_failure += USERID
}
随系统启动RSYNC
chkconfig rsync on
2、建立/etc/rsyncd.conf
rsyncd.conf的参数写在上边就是全局参数和写在模块里的就是模块参数
vi /etc/rsyncd.conf
我建立的可用的 的内容为
uid = root
gid = root
use chroot = no
max connections = 4
strict modes =yes
port = 873
[data]
path = /data/
comment = This is a test
ignore errors
read nly = yes
list = no
auth users = username
secrets file = /etc/rsync.pas
hosts allow = 0.0.0 .0/0
#hosts deny = 0.0.0 .0/0
#transfer logging = yes
其中[data]表示一个模块,服务端可以把多个模块“共享”出来,每个模块可以有不同的配置,参考:
3、配置rsync密码(在上边的配置文件中已经写好路径) /etc/rsync.pas(名字随便写,只要和上边配置文件里的一致即可),格式(一行一个用户)
vi /etc/rsync.pas
username:password
权限:因为rsync.pas存储了rsync服务的用户名和密码,所以非常重要。要将rsync.pas设置为root拥有, 且权限为600。
cd /etc
chown root.root rsync.pas
chmod 600 rsync.pas
4、让配置生效
service xinetd restart
三、启动rsync server(有xinetd超级进程启动)
# /etc/rc.d/init.d/xinetd reload
检查rsync
#netstat -a | grep rsync
tcp 0 0 0.0.0 .0:873 0.0.0.0:* LISTEN
客户端:这里只要一个密码,且不需要指定用户名
vi /etc/rsync_client.pas
888
修改rsync_client.pas的权限.(如果不改,rsync会提示该密码文件必须是root独有权限的,拒绝执行)
chown root.root /etc/rsync_client.pas
chmod 600 /etc/rsync_client.pas
至此,在客户端执行以下命令已经可以将服务器上log这个共享对应的目录同步到/data/htdocs/www/ad/logs了
rsync -aqz --password-file=/etc/rsync_client.pas oas_rsync@ 192.168.1.102::log/data/htdocs/www/ad/logs
备用信息:
rsync -aqz --password-file=/etc/rsync_client.pas oas_rsync@ 192.168.1.10::data/data/backup
3、自动运行
Mkdir /usr/local/rsync
1)vi /usr/local/rsync/time.sh //制作脚本文件
把下边的内容复制进去
#!/bin/bash
rsync -aqz --password-file=/etc/rsync_client.pas name@ 92.168.1.102::log/data/ht11
编制好的文件需要附加权限,才能够被执行
chmod 777 /usr/local/rsync/time.sh
2) crontab -e
加入*/3 * * * * /usr/local/rsync/time.sh //每3分运行一次time.sh脚本文件
(参考http://baike.baidu.com/view/1229061.htm)
-------------------------------------------------------------------------------------------------------
文件过滤
vi /etc/rsync_filter
在里面输入过滤条件
+ */
+ lin*.log
+ oh*.log
+ spmote*.log
- *
表示的意思是,备份所有目录信息,备份文件名为....这样的文件,不备份其他文件
新的备份语句为:
rsync -aqz --exclude-from=/etc/rsync_filter --password-file=/etc/rsync_client.pas [email protected]::data /data/ba
--exclude-from=/etc/rsync_filter表示从/etc/rsync_filter读取排除的规则(实际上也添加了不排除的规则)