Verwendung von @reboot in /etc/cron.d

16

Ich migriere die Crontabs einzelner Benutzer nach /etc/cron.d, da dies eine ordnungsgemäße Sicherung, Wiederherstellung und Versionierung ermöglichen würde.

Soweit ich weiß, besteht der einzige Unterschied zwischen den Crontabs des Benutzers und denen von etc darin, dass Sie den Benutzer als sechste Spalte angeben müssen. Ist das richtig?

Und meine Hauptfrage, auf die ich im Internet nirgendwo eine Antwort finden konnte: Wie verwende @rebootich sie in /etc/cron.d oder / etc / crontab?

so etwas wie @reboot root command?

Hyperknot
quelle

Antworten:

19

Aus der crontab-Manpage :

Jobs in /etc/cron.d/

Die Jobs in cron.d sind Systemjobs, die normalerweise für mehr als einen Benutzer verwendet werden. Aus diesem Grund wird der Name des Benutzers benötigt. MAILTO in der ersten Zeile ist optional.

BEISPIEL FÜR JOB IN /etc/cron.d/job

 #login as root
 #create job with preferred editor (e.g. vim)
 MAILTO=root
 * * * * * root touch /tmp/file

Das ist der gesamte Abschnitt über crontab in / etc , daher ist die Einbeziehung des Benutzers, unter dessen Namen der Job ausgeführt wird, in der Tat der einzige Unterschied.

Nochmals von derselben Manpage:

Diese speziellen Zeitangaben "Kurznamen" werden unterstützt, die die 5 anfänglichen Zeit- und Datumsfelder ersetzen und denen das Zeichen "@" vorangestellt ist:

@reboot: Nach dem Neustart einmal ausführen.

Dies lässt darauf schließen , dass @reboot der richtige Weg ist

   @reboot user_name command

ist richtig .

MariusMatutiae
quelle
1

In dem Fall müssen /etc/crontabSie nur diese Zeilen hinzufügen.

@reboot        command

Dabei kann der Befehl ein beliebiges Skript oder eine einzelne Datei sein.

Krishna
quelle
Funktioniert es? /etc/crontabBenötigt normalerweise einen Benutzernamen.
Mwfearnley
1

Wenn Sie es wie folgt interaktiv ausführen, geben Sie den Benutzer nicht an:

crontab -e
@reboot /root/mycommand

Wenn Sie es als Datei in /etc/cron.d ablegen, z. B. /etc/cron.d/mycronfile, müssen Sie den Benutzer angeben:

@reboot root /root/mycommand
Wadih M.
quelle