具有功能的linux cron脚本不运行

标签 linux bash cron ubuntu-server

我正在尝试在 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/

相关文章:

linux - 如何削减 ifconfig 以单独获取 eth* 详细信息?

php - 500 内部服务器错误 Codeigniter 的 Cron 作业

python - 如何在 linux crontab 中运行 python 程序?

c - Linux C : Changing process name during compilation

python - 是否可以在 Python 中更改父进程的环境?

linux - 如何显示 2020 年的 3 个月(即 1 月、2 月、3 月)日历

linux - 从 plesk 运行 cronjobs

bash - 为什么我不能在 bash 的引号中生成换行符?

linux - 建议的命令 eval "docker-machine env default"输出在 Cygwin 上失败

php - 如何根据时区设置WP Cron作业时间戳?