expect

在写一些shell脚本的时候,经常会遇到需要用户输入密码的交互情况。
例如在用rsync备份的时候,如果没有假设rsync服务器端,需要用到ssh+rsync备份,没有提供输入密码的选项。上网上查了一下,有个expct的交互程序。
expect也够复杂的,起码在我看来是这样。先找个可以输入密码的实例:见
http://www.blog.ccidnet.com/blog-htm-do-showone-uid-73559-itemid-238796-type-blog.html

#!/usr/bin/expect -f
#需要执行的rsync备份脚本
spawn /var/backup.sh
#等待出现 password:的提示,然后发送密码
expect "password:" { send "PASSWORD\n" }
#不知道是啥意思,没有这句还不行
expect ".*\@.*#"

backup.sh 只有一个rsync的命令:rsync -avz /var IP:/ 1>log.txt 2>&1
当然可以更复杂。
现在已经能满足我的备份需求了,够用就好!

随机文章:

Tags:

发表评论