rsync 是一个快速增量文件传输工具,它可以用于在同一主机备份内部的备分,我们还可以把它作为不同主机网络备份工具之用。相对tar和wget来说,rsync 也有其自身的优点,比如速度快、安全、高效;


我们平常运用的rsync备份方法均是利用典型的rsync备份方法,服务器需要备份就需要配置rsync deamon服务,然后在Backup服务器上配置计划任务。该方式显得非常的复杂,如果架构或IP地址发生变化,那么就必须到各相关设备进行配置修改。该部分的配置我就不叙述,Google一下就知道。

ssh+sync+expect备份方法则可以集中的在一台服务器上进行配置与管理,即使增加节点也一样方便。方法如下:
1.创建备份脚本backup.sh
vi backup.sh
rsync -avz --rsh="ssh -l root" 192.168.50.21:/opt/wwwroot /backup/hostname
2.创建密码录入脚本backup.exp
vi backup.exp
#!/usr/bin/expect -f
#
spawn date "+%Y-%m-%d %H:%M"
expect "#"
spawn backup.sh
expect "password:" { send "root密码\n" }
expect ".*\@.*#"

3.创建计划任务
crontab -e
10 * * * * backup.exp >> backup.log

如果需要增加新的节点,仅需重复以上步骤即可实现集中备份。

脚本部分可以增加参数化,这样就可以进一步的复用脚本,提高节点增加的部署效率!不过由于时间关系,该脚本我就不写了。