工作中遇到了有关rsync使用的问题,在这里记录下供有同样需求的人参考一下
先说下环境
服务端配置
pid file = /rsyncdata/rsyncd.pid port = 873 address = 0.0.0.0 charset = UTF-8 reverse lookup = no uid = 0 gid = 0 use chroot = no hosts allow = 127.0.0.1 10.10.0.0/255.255.0.0 log format = %o %h [%a] %m (%u) %f %l log file = /rsyncdata/logs/rsyncd.log read only = no max connections = 1000 transfer logging = yes exclude = lost+found/ fake super = yes timeout = 900 # sub config [mysql-back] path = /rsyncbak/dbback/mysql-back comment = mysql-back read only = no auth users = backuser hosts allow = * secrets file = /etc/rsync.password dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z log file = /rsyncdata/logs/rsyncd_mysql-back.log
采用密码文件认证的方式传输,客户端要保证密码文件存在,且权限为600
客户端待传输的目录结构为/mysql/backup/${port}/data/${date}
需求是,将${port}下的最新备份集传输到rsync server,但是server端如果不存在上级目录${port}/data则自动创建
使用喧嚣 R可以实现这一目的,所以最终的传输命令为
cd /mysql/backup /usr/bin/rsync -avrPR ./${port}/data/${lastest_date} backuser@${rsync_server}::mysql-back --password-file=/etc/rsync.password