在 cronjob 中執行 sudo 指令 (vestacp/ubuntu)

在 cronjob 中執行 sudo 指令 (vestacp/ubuntu)

是否可以新增 cron 指令,例如“sudo systemctl restart exim4”?通常在 cronjob 的列表中有一個執行檔的路徑,但看起來 Vestacp 有其他指令的列表,這些指令不包括在內,例如「systemctl {action} {service}」。我是否需要使用上述命令執行來製作某種文件?因為我相信帶有命令“sudo systemctl restart exim4”的 cronjob 不起作用。

烏班圖18.04

答案1

出色地,sudo可能需要 tty,我相信它不會從 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每週重新啟動兩次(我有我的理由),我知道它有效。

請注意,系統範圍的 crontab 需要一個額外的欄位(root在上面的範例中)並且它與 root 的 crontab 不同

相關內容