rsync同步备份
1、备机 bak 同步服务端上的 web /usr/bin/rsync -vzrtopg --delete --progress --password-file=/etc/user.passwd salt@172.16.3.18::service /opt/bak/web/ 2、bak 同步 service1 服务 /usr/bin/rsync -vzrtopg --delete --progress --password-file=/etc/user.passwd salt@172.16.3.18::service1 /opt/bak/service1/ 3、bak 同步 service2 服务 /usr/bin/rsync -vzrtopg --delete --progress --password-file=/etc/user.passwd salt@172.16.3.18::service2 /opt/bak/service2/ # 注意 在备份的主机操作 被同步的bak目录 在后,如果在前就是备的同步主的了。 # 备机本地的 bak 同步到服务端; /usr/bin/rsync -vzrtopg --delete --progress --password-file=/etc/user.passwd /opt/bak/web salt@172.16.3.18::web ### 参数: -v 详细模式输出,传输时的进度等信息 -z 传输时进行压缩以提高效率—compress-level=num可按级别压缩 -r 对子目录以递归模式,即目录下的所有目录都同样传输。 -t 文件的时间信息time -o 文件属主信息owner -p 文件权限 -g 文件的属组信息 -P progress 显示同步的过程及传输时的进度等信息 -a 归档模式,表示以地柜模式传输文件,并保持文件所有属性相当于-rtopgdl -e 使用的信道协议,指定替代rsh的shell程序。例如:ssh -D 设备文件信息 -l --links 保留软连接 --progress 显示备份过程 --delete 删除那些目的文件中源文件没有的文件 --exclude=PATTERN 指定排除不需要传输的文件模式 --config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf文件 --port=PORT 指定其他的rsync服务端口 -u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件) -b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。 -suffix=SUFFIX 定义备份文件前缀 -stats 给出某些文件的传输状态 -R, --relative 使用相对路径信息 如:rsync path/1/1.file remote:/tmp/ 则在/tmp目录下创建1.file文件 而如果使用-R参数:rsync -R path/1/1.file remote:/tmp/ 则会创建文件/tmp/path/1/1.file,也就是会保持完全路径信息。
一、服务器端、备份客户端安装 rsync 服务。
1、环境:
CentOS 6 主 IP:172.16.3.18 备 IP:172.16.3.19
2、安装 rsync 软件
#yum install rsync -y
3、iptables 开放 873 端口
#iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT #service iptables save #service iptables restart
二、server 服务端操作
IP: 172.16.3.18
1、需要备份的文件
web、service1、service2
2、rsync 配置文件示例(默认没有、需要收到创建)
# cat /etc/rsyncd.conf
uid = root gid = root use chroot = no
# 关机用户主目录 max connections = 100
# 客户端最大链接 timeout = 30 strict modes = yes
# 密码文件配置 pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsyncd.log hosts allow = 172.16.3.18
# 指定白名单IP # hosts deny = * list = false
# 禁止客户端查看用户列表 auth users = user
# rsync同步使用的账户 secrets file = /etc/user.passwd
# 需要手动创建密码文件 [web] path = /home/web/ ignore errors
# 忽略 错误 read only = no write only = no [service1] path = /opt/service1/ ignore errors read only = no write only = no [service2] path = /opt/service2/ ignore errors read only = no write only = no
3、密码文件 /etc/user.passwd , (默认没有、需要收到创建)
# cat /etc/user.passwd
user:passwd
# 格式 用户:密码
4、启动默认守护进行:
#/usr/bin/rsync --daemon
5、检测进程
#ps -ef |grep rsync #netstat -ano |grep 873
二、客户端 bak 设置操作
备 IP:172.16.3.19
1.创建密码文件 /etc/user.passwd , 只写密码就可以。 (默认没有、需要收到创建)
#cat /etc/user.passwd
passwd
# 格式 密码
2、服务的目录 同步 到备机 bak 上:
三、 设置定时备份
1、同步脚本
# vi /opt/script/rsync-user.sh /usr/bin/rsync -vzrtopg --delete --progress --password-file=/etc/user.passwd salt@172.16.3.18::service /opt/bak/web
2、定时同步(每周日零点进行同步)
crontab -e
0 0 * * 0 /opt/script/rsync-user.sh > /opt/script/rsync-user.txt