最近在做一个检测脚本,并发送日志到相关服务器。脚本测试正常,且日志发送正常,遂加入crontab

但是在crontab中无法,执行。逐一检查crontab运行状态、脚本执行权限、环境变量等等,均正常,脚本还是无法执行。

后来发现一帖子,说scp.exp有问题

如下为:scp.exp

#!/usr/bin/expect -f


set CMD0 [lindex $argv 0]

set CMD1 [lindex $argv 1]

set PASS "dawa@2013"


spawn scp -r $CMD0 $CMD1


set timeout 10

expect {

"*(yes/no)*" { send "yes\r" }

"*password*" { send "${PASS}\r" }

}


interact


最后scp.exp停留在交互上,而密码无法输入,一直失败。必须终止交互

遂修改scp.exp成功

修改如下

#!/usr/bin/expect -f


set CMD0 [lindex $argv 0]

set CMD1 [lindex $argv 1]

set PASS "dawa@2013"


spawn scp -r $CMD0 $CMD1


expect {

"*(yes/no)*" { send "yes\r" }

"*password*" { send "${PASS}\r" }

}


#interact

set timeout 20

expect eof

exit