Cron

作為 root 的 Cron 作業需要 sudo 到另一個使用者

  • February 11, 2015

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更正了該問題。

謝謝

如果腳本在 root 的 crontab 中執行,您應該從命令中刪除“sudo”。我以前見過這種情況,當你已經是 root 時嘗試“sudo”會使命令失敗。

如果要切換使用者,則以 root 身份執行時的命令是 ‘su -l jira’,而不是 sudo -u jira。

引用自:https://serverfault.com/questions/666348