cronjob で sudo コマンドを実行する (vestacp/ubuntu)

cronjob で sudo コマンドを実行する (vestacp/ubuntu)

「sudo systemctl restart exim4」のような cron コマンドを追加することは可能ですか? 通常、cronjob のリストには実行ファイルへのパスがありますが、vestacp には「systemctl {action} {service}」のような含まれていない他のコマンドのリストがあるようです。上記のコマンド実行を含む何らかのファイルを作成する必要がありますか? コマンド「sudo systemctl restart exim4」を含む cronjob は機能しないと思います。

ウブントゥ 18.04

答え1

良い、sudottyが必要な場合があります、cronからttyを取得できないと思います。しかし、それができるなら、sudoおそらくシステム全体のcrontabを編集することができます(/etc/crontab;またはファイルを に置きます/etc/cron.d)。これは、cronにシステム全体のサービスを再起動させる方法です。ないsudoユーザーの crontab から。

たとえば、/etc/crontab私の Debian では次のようにしました:

47 2    * * 2,6 root    systemctl restart transmission-daemon.service

transmission週に 2 回再起動するようにしています(理由があります)。そして、それが機能することを知っています。

システム全体のcrontabには追加のフィールド(root上記の例)が必要であることに注意してください。それはルートのcrontabとは異なります

関連情報