crontabがあるサーバーでは実行されますが、別のサーバーでは実行されないのはなぜですか?

crontabがあるサーバーでは実行されますが、別のサーバーでは実行されないのはなぜですか?

linodeには2つのサーバーがあり、いくつかのウェブサイトがあります。サーバーでmysqlが実行されていることを確認し、そうでない場合は、スクリプトがmysqlを起動するスクリプトを作成しました。スクリプトは両方のサーバーにあり、ファイル構造は同じです。

両方のサーバーで "crontab -e"コマンドを使用してcronにスクリプトを追加しました。問題は、私の開発サーバーがスクリプトを実行し、本番サーバーが停止していることです。問題ではないことを知るために、crontabの末尾にスペースを追加しました。

本番サーバーでスクリプトを手動で実行すると、「('-p」に関する情報を読み取れません:geteuid()= 1000ですが、rootである必要があります)」というエラーが発生します。エラーが発生してもスクリプトはmysqlを再起動しますが、cronを使用してスクリプトを実行するとmysqlは再起動されません。また、開発サーバーでスクリプトを実行しましたが、同じエラーが発生しました。エラーがあっても、スクリプトはdevで実行され、cronを介して実行されるとmysqlを再起動します。

開発サーバーで sudo でコマンドを実行するとパスワードは要求されませんが、本番サーバーで実行するとパスワードが要求されます。

cronコマンドが実行されていることを確認するためにsyslogをチェックしました。

このスクリプトは、-v -u -l -n -t -pパラメーターとともにnetstatコマンドを使用します。

ベストアンサー1

開発サーバーで sudo でコマンドを実行するとパスワードは要求されませんが、本番サーバーで実行するとパスワードが要求されます。

両方のノードのsudo構成を比較してみましたか? crontabを変更したアカウントで、両方のシステムでこのコマンドを実行します。

sudo -l

おすすめ記事