再起動後にCrontabでSSHが失敗する

再起動後にCrontabでSSHが失敗する

私は定期的に、SSH を使用してサーバーに接続するシェル スクリプトを Crontab 経由で実行しています。そのスクリプトを手動で実行すると、正常に実行されます。同じセッション内では、Crontab でも正常に実行されます。しかし、マシンを再起動して Crontab がスクリプトを開始するのを待つと、失敗します。

私のマシンと接続先のサーバーは両方とも、お互いにパスワードのないキーを持っています。

私のスクリプト内の SSH コマンド:

ssh -i /home/myuser/.ssh/id_rsa -t -t myuser@servername 'some-script-on-the-server'

Crontabコマンド:

45 10   * * *   root    sudo -u myuser my-local-script

SSH コマンドを提供することでこの問題を解決できると思いましたが-i /home/myuser/.ssh/id_rsa、それでもその後は機能しませんでした。

出力は次のよう/var/log/syslogになります。

May 23 11:06:01 mycomputer CRON[1254]: (root) CMD (sudo -u myuser my-local-script)
May 23 11:06:01 mycomputer CRON[1252]: (CRON) info (No MTA installed, discarding output)

どうしたの?

答え1

「MTA がインストールされていません」とは、スクリプトでメールを送信したいが、MTA (メール転送エージェント) が指定されていないことを意味します。cron デーモンは実際に出力を送信しようとします。MTA (postfix など) をインストールするか、出力が重要でない場合は「/dev/null 2>&1」にリダイレクトすることができます。

関連情報