Führen Sie den Sudo-Befehl im Cronjob aus (vestacp/ubuntu).

Führen Sie den Sudo-Befehl im Cronjob aus (vestacp/ubuntu).

Ist es möglich, einen Cron-Befehl wie „sudo systemctl restart exim4“ hinzuzufügen? Normalerweise gibt es in der Liste von Cronjobs einen Pfad zur Ausführungsdatei, aber es sieht so aus, als hätte Vestacp eine Liste anderer Befehle, die nicht enthalten sind, wie „systemctl {action} {service}“. Muss ich eine Art Datei mit der erwähnten Befehlsausführung erstellen? Weil ich glaube, dass Cronjobs mit dem Befehl „sudo systemctl restart exim4“ nicht funktionieren werden.

Ubuntu 18.04

Antwort1

Also,sudokann ein TTY erfordern, ich glaube, es wird kein TTY von Cron bekommen. Aber wenn Sie können, sudokönnen Sie wahrscheinlich die systemweite Crontab bearbeiten ( /etc/crontab; oder eine Datei in einfügen /etc/cron.d). Auf diese Weise kann Cron einen systemweiten Dienst neu starten.nichtmit sudoaus der Crontab eines Benutzers.

Beispielsweise /etc/crontabhabe ich in meinem Debian Folgendes eingefügt:

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

zweimal pro Woche neu zu starten transmission(ich habe meine Gründe) und ich weiß, dass es funktioniert.

Beachten Sie, dass die systemweite Crontab ein zusätzliches Feld erfordert ( rootim obigen Beispiel) undes ist anders als root's crontab.

verwandte Informationen