在 cronjob 中执行 sudo 命令(vestacp/ubuntu)

在 cronjob 中执行 sudo 命令(vestacp/ubuntu)

是否可以添加 cron 命令,例如“sudo systemctl restart exim4”?通常在 cronjob 的列表中有一个执行文件的路径,但看起来 vestacp 有未包含的其他命令列表,例如“systemctl {action} {service}”。我是否需要创建某种包含上述命令执行的文件?因为我相信带有命令“sudo systemctl restart exim4”的 cronjob 不会起作用。

Ubuntu 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 不同

相关内容