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;