web-dev-qa-db-ja.com

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

コマンドは通常のシェルで実行されますが、cronから実行された場合は実行されません。

Cronプロセスは正常に機能し、スクリプトの残りの部分は正しく実行されますが、機能しないのはSudoの部分だけです。

スクリプトを更新しました。Sudoをsuに交換し、別のスクリプトでテストしましたが、動作するようです。今夜、実際のスクリプトをテストして、この投稿を更新します。

Sudoからsuへの変更により、問題が修正されました。

ありがとう

4
Codefire

スクリプトがルートのcrontabで実行されている場合は、コマンドから「Sudo」を削除する必要があります。これは以前に見たことがあります。すでにrootになっているときに「Sudo」を実行しようとすると、コマンドが失敗します。

ユーザーを切り替える場合、rootとして実行したときのコマンドはSudo -u jiraではなく、「su -l jira」です。

4
LHWizard