今天在调增量备份脚本的时候,遇到了一个问题。明明脚本手工执行是没有问题的,可却在系统自动执行的时候报错了。结果就是各种的搜了,今天也为此标记下。
修改前的代码片段:
#! /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