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 /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并在另一个脚本中testing,它似乎工作。 我会testing今晚的实际脚本,然后更新这个post。
sudo su改正了这个问题。 谢谢
如果脚本在root的crontab中运行,你应该从命令中删除'sudo'。 我以前见过这个,当你已经是root的时候试图“sudo”会导致命令失败。
如果你想切换用户,那么以root身份运行的命令是'su -l jira',而不是sudo -u jira。