Rsync + SSH + Expect 实现安全的集中的自动的备份

本文介绍了一种使用Rsync结合SSH及Expect脚本实现远程自动备份的方法。通过编写BASH脚本进行文件同步,并利用Expect脚本自动输入密码,最后设置crontab定时任务完成自动备份。

                        Rsync + SSH + Expect 实现安全的集中的自动的备份

 
请在下图上点击一下,就可以看到清晰的图片了,笔者不大会弄图片,请见谅。
 
因第一种方法(普通的备份方法)使用得比较多,所以就不在举例了。下面说说第二种方法(改进后的备份方法)的具体配置。
1、在备份中心上执行下列操作:
第一步:写一个BASH脚本,作具体的拷贝文件的工作,例如:
 -bash-3.00# cat 181.sh
rsync -avz --rsh="ssh -l xx-rsync-user" \
      --exclude-from=/opt/script/data/181/exclude_dirs \
xxx.xx.xxx.181:/usr/my_applications  /opt/backup/xxx.xxx.xxx.181/
注:xx-rsync-user 是服务器xxx.xx.xxx.181上的一个普通权限用户,该用户只有对目/usr/my_applications的读权限。
第二步:写一个Expect脚本,调用第一步的BASH脚本,目的是给BASH脚本输入密码,例如:
-bash-3.00# cat 181.exp
#!/usr/bin/expect -f
#
spawn date "+%Y-%m-%d %H:%M"
expect "#"
spawn /opt/script/prod/181.sh
expect "password:" { send "<用户xx-rsync-user的密码>\n" }
expect ".*\@.*#"
 
第三步:建立一个crontab,调用第二步的Expect脚本,以定时自动备份,例如:
10 * * * * /opt/script/prod/181.exp >> /opt/script/data/181/181.log
 
2. 在需要备份资料的服务器上执行下列操作:
第一步:登录到服务器xxx.xx.xxx.181上去,建立用户xx-rsync-user,并授予其对/user/my_applications目录的只读权限;
 
如果有其它的服务器需要备份,那么重复上述步骤就OK了。



本文转自zkjian517 51CTO博客,原文链接:http://blog.51cto.com/zoukejian/56678

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值