CentOS6的配置文件如下:
服务端配置文件:
[root@localhost rsync]# cat /etc/rsyncd.conf
uid = root
gid = root
max connections = 200
timeout = 600
use chroot = no
read only = no
port = 873
log file=/var/log/rsyncd.log//记录日志
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
[data]//第一行是模块的名字,必须有这行
path=/data//指定要同步的具体文件夹,此处为实际同步的文件夹
comment=backup data//备注信息,主要是一些说明信息,用来帮助记忆等
ignore errors//忽略一些无关的错误信息防止因为资源不足或其他的通信出错导致严重问题
hosts allow=192.168.40.42//允许同步的客户机IP,多个用","隔开
auth user=test//验证用户,没有这行表示匿名,安全起见请加上这行
secrets file=/root/rsync.passwd//密码认证文件,此文件中包含客户端认证时的用户名和密码的对应关系 ,配置
文件名可以任意secrets file分两部分,服务器端跟备份服务器端
服务器端 格式为登录用户名:登录用户密码
备份服务器端 格式为登录用户密码(不需要写入登录用户名)
按上要求设置服务器端的密码文件
客户端配置文件
[root@localhost rsync]# cat /etc/rsyncd.conf
uid = root
gid = root
max connections = 200
timeout = 600
use chroot = no
read only = no
port = 873
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
[data]
path=/data
comment=backup data
ignore errors
hosts allow=192.168.40.40
auth users=test
secrets file=/root/rsync.passwd
服务端:
[root@localhost ~]# cat rsync.passwd //这个文件一定要设置为chmod 600不然无法完成RSYNC设置
test:123456
客户端:
[root@localhost ~]# cat rsync.passwd //这个文件一定要设置为chmod 600不然无法完成RSYNC设置
123456
服务端:
echo "/usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf&">>/etc/rc.local//让系统开机运行
客户端:
echo "/usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf&">>/etc/rc.local//让系统开机运行
reboot重启启动后
netstat -an |grep 873 查看服务是否开启并监听端口如有监听服务正常
[root@localhost ~]# netstat -an|grep 873
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN
tcp 0 0 :::873 :::* LISTEN
unix 3 [ ] STREAM CONNECTED 8873
如果开启的iptables就要
iptables -I INPUT -p tcp --dport 873 -j ACCEPT 命令开启防火墙的873端口
服务端脚本
#!/bin/sh
/usr/local/rsync/bin/rsync -vzrtopg --progress test@192.168.40.42:/data /data --delete
客户端脚本
#!/bin/sh
/usr/local/rsync/bin/rsync -vzrtopg --progress --password-file=/root/rsync.passwd /data
test@192.168.40.40::data --delete
解释 --progress 显示传输过程
--delete 通信两端被同步的一段如果之前备份的文件有删除的话备份的那端也删除同样文件
--password-file是备份机器的密码文件的路径方便crontab调用
test@192.168.40.40::data /data是用test帐号登录远程服务器192.168.40.40调用test模块备份到本地/data
文件夹下如果命令是/data test@192.168.40.40::data的话正好相反是讲本地/data的文件同步到远程机器
192.168.40.40的data模块定义的路径地方!!!!!(警告!!!这点一定要搞懂,因为备份使用--delete 删除
已经删除的文件一定要确定备份方向)
crontab 设置定时任务同步备份实现自动备份