Cron
作為 root 的 Cron 作業需要 sudo 到另一個使用者
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。