我正在尝试在 cron 中将脚本作为作业运行。
脚本:
echo "Defining function"
function talkMe() {
echo "me"
}
echo "Start talking"
talkMe
定时任务:
0 18 * * * /scripts/talk.sh > /tmp/talk.log
cron 错误:
Aug 23 11:24:01 database CRON[8497]: (root) CMD (/scripts/talk.sh > /tmp/talk.log)
Aug 23 11:24:01 database CRON[8494]: (CRON) error (grandchild #8497 failed with exit status 2)
测试日志:
Defining function
在我尝试更改 ROOT 密码之前,脚本运行良好:
sudo su
passwd <my new pass for root>
这个命令似乎没有效果,ROOT 继续使用旧密码...但是在这个命令之后,CRON 问题出现了!
如何解决 CRON 问题,以正确运行脚本?
注意:手动运行脚本,一切正常!
最佳答案
您的脚本没有 she-bang 台词。将此行插入脚本的顶部:
#!/bin/bash
脚本可能由使用不同语法定义函数的不同 shell 运行。
关于具有功能的linux cron脚本不运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12094162/