一、在 server 端配置
1. 编辑配置文件
#vi /etc/rsyncd.conf
添加下面的配置参数:
uid = nobody # 该选项指定当该模块传输文件时守护进程应该具有的uid.默认值为”nobody”.
gid = nobody # 该选项指定当该模块传输文件时守护进程应该具有的gid.默认值为”nobody”.
max connections = 4 # 最大连接数为4
use chroot = no # 不使用chroot
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
hosts allow = 192.168.100.1 # 哪些电脑可以访问rsync服务
#hosts deny = 192.168.100.0/24 # 哪些电脑不可以访问rsync服务 [mysqlbackup] # rsync区段的设定名称
path = /zsjdata/mysql/data # 需要同步的数据存放路径
comment = mysql backup folder # 注释
auth users = root # 指定用户
ignore errors # 忽略错误
read only = yes # 只读
list = no # 不能列表
auth users = root # 连接rsync服务的帐号
secrets file = /etc/rsyncd.pwd # 指定存放帐号密码的位置
2. 在server端生成一个密码文件 /etc/rsyncd.pwd
# echo root:xxx >> /etc/rsyncd.pwd
# chmod 600 /etc/rsyncd.pwd
3. 启动 rsync 守护进程方式启动
#rsync --daemon
4. 添加到自启动文件
#echo "rsync --daemon" >> /etc/rc.d/rc.local
5. 检查 rsync 默认使用的是873端口,除非特殊情况,一般不要去修改
#netstat -na | grep 873 tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN tcp 0 0 :::873 :::* LISTEN
二、客户端配置:
1. 在本机生产密码文件 rsync服务器 root 帐号密码(注:只要密码)
#echo XXX >> /etc/rsyncd.pwd
#chmod 600 /etc/rsyncd.pwd
2. 测试备份命令
客户端备份服务器上指定模块中的数据 备份rsync服务器上postfix中模块指定文件夹,并删除本地服务器上没有的内容
#rsync -vzrtopg --progress --delete --password-file=/etc/rsyncd.pwd root@192.168.100.2::mysqlbackup /data/mysql
# -v, -verbose 详细模式输出
# -z, -compress 对备份的文件在传输时进行压缩处理
# -r, -recursive 对子目录以递归模式处理
# -t, -times 保持文件时间信息
# -o, -owner 保持文件属主信息
# -p, -perms 保持文件权限
# -g, -group 保持文件属组信息
# --progress 显示传输进度
# --delete 删除本地备份目录中服务器模块指定目录中没有的文件
# --password-file 从指定文件中得到密码
3. 制定计划任务
#crontab -e 0 0 * * * rsync -vzrtopg --delete --password-file=/etc/rsyncd.pwd root@192.168.100.2::mysqlbackup /data/mysql > /dev/null 2>&1
本来是想给自己两台服务器做个简单的双机数据库自动备份,一台服务器在美国百兆共享,一台在国内5兆独享,结果测试是没问题成功了,但这个速度实在太让人蛋疼了,才20KB。。
编辑的时候,请注意参数前面的 短横杠