定时任务中的shell脚本调用expect脚本

原创
2016/09/01 23:54
阅读数 598

今天在调增量备份脚本的时候,遇到了一个问题。明明脚本手工执行是没有问题的,可却在系统自动执行的时候报错了。结果就是各种的搜了,今天也为此标记下。

修改前的代码片段:

#! /usr/bin/expect

#set timeout=3

spawn scp -r root@10.14.162.35:/data/wyh/test/binary/  .
expect {
"password:" { send "******\r" }

}
interact
exit

修改后的代码片段:

#! /usr/bin/expect

#set timeout=3

spawn /usr/bin/scp -r root@10.14.162.35:/data/wyh/test/binary/  .
expect {
"password:" { send "******\r" }

}
#interact
expect eof
exit

改动的地方:

1.补全了命令的绝对路径(查看命令绝对路径的方式: whereis  command) 或修改crontab的配置环境:

vim /etc/crontab   将命令所在的执行路径加入crontab配置表 如下图所示:

2.在shell脚本中调用expeccet脚本,需在最后将 interact该为 expect eof

3. 在定时任务中,在遇到问题时,通过crontab日志查询错误是很重要的一步。相关命令:

  less /var/log/crontab

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部