重啟後 SSH 在 Crontab 中失敗

重啟後 SSH 在 Crontab 中失敗

我經常透過 Crontab 運行 shell 腳本,該腳本使用 SSH 連接到伺服器。如果我手動運行該腳本,它將成功運行。在同一個會話中,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”

相關內容