是否可以添加 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 不同。