一、服务端设置
1. 修改 server 端配置
# 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 = 28.16.67.10 # 哪些客户端IP可以访问rsync服务 #hosts deny = 192.168.100.0/24 # 哪些IP不可以访问rsync服务 0/24 代表 192.168.100 该IP段
添加一个自定义的同步模块配置:
[mysqlbackup] # rsync同步模块的设定名称 path = /mydata/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. 服务端生成密码文件
# echo root:123456 >> /etc/rsyncd.pwd
配置文件权限,仅允许 root 使用:
# 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 123456 >> /etc/rsyncd.pwd # chmod 600 /etc/rsyncd.pwd
2. 指定客户端目录与服务端指定的rsync模块配置的目录同步,并删除客户端存在而服务端不存在的目录或文件
# rsync -vzrtopg --progress --delete --password-file=/etc/rsyncd.pwd root@24.12.36.55::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@24.12.36.55::mysqlbackup /data/backup/mysql > /dev/null 2>&1