RHEL6 在 root 的 crontab 中有:
* 21 * * * /root/script.sh
在script.sh中有一行:
/usr/bin/sudo -u jira bash -c 'cd /opt/jira/bin; ./stop-jira.sh' && echo "Jira Shut Down" >> /root/debuglog
该命令在常规 shell 中执行,但从 cron 运行时则不执行。
cron 进程运行良好,脚本的其余部分正确执行,只有 sudo 部分不起作用。
我已经更新了脚本:将 sudo 替换为 su,并在另一个脚本中测试,它似乎有效。今晚我将在实际脚本上进行测试,然后更新此帖子。
更改sudo
已su
纠正该问题。
谢谢
答案1
如果脚本在 root 的 crontab 中运行,则应从命令中删除“sudo”。我以前见过这种情况,当您已经是 root 时尝试“sudo”会导致命令失败。
如果您想切换用户,那么以 root 身份运行时的命令是“su -l jira”,而不是 sudo -u jira。