红联Linux门户
Linux帮助

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

发布时间:2016-09-14 10:38:32来源:linux网站作者:Yum51
今天在调增量备份脚本的时候,遇到了一个问题。明明脚本手工执行是没有问题的,可却在系统自动执行的时候报错了。结果就是各种的搜了,今天也为此标记下。
 
修改前的代码片段:
#! /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配置表,如下图所示:
定时任务中的shell脚本调用expect脚本
2.在shell脚本中调用expeccet脚本,需在最后将 interact该为 expect eof
3.在定时任务中,在遇到问题时,通过crontab日志查询错误是很重要的一步。相关命令:
less /var/log/crontab
 
本文永久更新地址:http://www.linuxdiyf.com/linux/24148.html