Before SETUP: server:提供所需源 client:抓去源内容 文中提到IP皆为伪地址,实际配置按需设置 1 安装

yum install rsync

2.1 on server 2.1.1 以下文件需要手动创建

touch /etc/rsyncd/rsyncd.conf #创建rsyncd.conf,这是rsync服务器的配置文件.
touch /etc/rsyncd/rsyncd.secrets #创建rsyncd.secrets ,这是用户密码文件.
chmod 600 /etc/rsyncd/rsyncd.secrets #将rsyncd.secrets这个密码文件的文件属性设为root拥有, 且权限要设为600, 否则无法备份成功.
touch /etc/rsyncd.motd ##这是欢迎词,也就是登录之后显示的文本,相当于vsftp中的banner文件.

2.1.2 分别编辑上面的文本文件 rsyncd.conf:

vim /etc/rsyncd/rsyncd.conf
pid file = /var/run/rsyncd.pid
port = 873
address = 123.456.789.000#server 的IP地址,这里可以写成127.0.0.1或者别的指向自己
#uid = nobody
#gid = nobody
uid = root
gid = root#为方便测试这里直接用的root
use chroot = yes
read only = yes

#limit access to private LANs
hosts allow=123.456.789.111/24
hosts deny=*
max connections = 10
motd file = /etc/rsyncd/rsyncd.motd

#This will give you a separate log file
log file = /path/to/log/file.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
transfer logging = yes
timeout = 300

[SomeName]
path = /path/to/where/you/want/
list=yes
ignore errors
auth users = root
secrets file = /etc/rsyncd/rsyncd.secrets
comment = This is Websites
exclude = SomeDirYouMayDoNotToWantSync/

rsyncd.secrets

vim rsyncd.secrets
#内容格式为username:ThisIspassword
#一行一个用户.
#注意
#这里的密码可以不和系统密码相同

2.1.3 启动server并测试

#start server
/usr/bin/rsync –daemon –config=/etc/rsyncd/rsyncd.conf
#test server
rsync –list-only root@123.456.789.000::SomeName
#这里需要手动输入刚才在rsyncd.secrets中设置的root密码ThisIspassword

3 on client 3.0 测试

rsync –list-only root@123.456.789.000::SomeName
#如果遇到错误
#rsync: failed to connect to 222.211.73.93: No route to host (113)
#rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.6]
#检查一下server端的iptables是否正常
#on server
#iptables -L
#如果有问题添加几条规则进去
# iptables -A INPUT -p tcp -s 125.71.224.110 –dport 873 -j ACCEPT

3.1 基础使用

rsync -avzP root@123.456.789.000::SomeName /path/to/save/
#意思是讲server端的数据拉到/path/to/save/下
#注意这里同样需要输入刚才在rsyncd.secrets中设置的root密码ThisIspassword

3.2 免密码 3.2.1 设置保存帐号的文本文件

mkdir rsyncd
cd rsyncd/
touch rsyncd.secrets
chmod 600 rsyncd.secrets
echo ‘ThisIspassword’ > rsyncd.secrets#这个密码就是server上保存的那个密码
注意
password file must not be other-accessible
也就是说这个密码文件权限设置为root只读
这个文件格式不同于server端, 不需要设置为user:password这种格式. 只需要写入一行密码即可.

#测试一下
rsync –list-only –password-file=/etc/rsyncd/rsyncd.secrets root@123.456.789.000::SomeNamee

3.3 使用 3.3.1 创建同步脚本

vim /path/to/save/this/script/file/name.sh
#!/bin/bash
/usr/bin/rsync -avzp –log-file=’/var/log/rsyncd/rsync.log’
–exclude ‘cache’
–exclude ‘sess_’
–delete
–password-file=/etc/rsyncd/rsyncd.secrets
root@123.456.789.000::SomeNamee /path/to/save/
#参数意思的话可以问一下男人

3.3.2 加入计划任务

crontab -e
*/10 * * * * /path/to/save/this/script/file/name.sh#添加每十分同步一次
service crond restart#重启服务

4 其他 4.1 分割日志

vim /etc/logrotate.d/rsyncd

/var/log/rsyncd/rsync.log {
dateext
compress
daily
create
# notifempty
#maxage 90
rotate 20
missingok
sharedscripts
}

#test一下,其实是强制刷一次
logrotate -f /etc/logrotate.d/rsyncd
可以看到/var/log/rsyncd/中已经有个.gz就是刚刚刷出来的.

EOF;