Führen Sie alle 24 Stunden nach dem Start einen Root-Befehl aus

2580
Matthew G

Ich möchte alle 24 Stunden einen Befehl als root auf einem Ubuntu 11.04-Rechner ausführen. Diese Maschine ist nicht immer eingeschaltet, aber wenn dies der Fall ist, kann sie tagelang eingeschaltet bleiben. Wie sollte ich mein crontab so konfigurieren, dass es diesen Befehl im gewünschten Intervall ausführt, und gibt es etwas Besonderes über die Ausführung eines cron-Jobs als root, über den ich Bescheid wissen sollte? Ich bin die einzige Person, die diese Maschine verwendet.

1
Beachten Sie, dass Ihr Titel anscheinend die Frage stellt, wie Sie einen Befehl 24 Stunden nach jedem Start ausführen können, während Ihre Frage alle 24 Stunden danach fragt, wann das System gestartet wurde. Daniel Andersson vor 11 Jahren 1

2 Antworten auf die Frage

5
mvp

Sie können Ihr Skript einfach zur Ausführung in das Verzeichnis hinzufügen /etc/cron.daily- es wird einmal pro Tag ausgeführt anacron.

Auszug aus man 8 anacron:

Mit Anacron können Befehle periodisch mit einer in Tagen angegebenen Häufigkeit ausgeführt werden. Im Gegensatz zu cron (8) wird nicht davon ausgegangen, dass die Maschine kontinuierlich läuft. Daher kann es auf Maschinen verwendet werden, die nicht rund um die Uhr laufen, um tägliche, wöchentliche und monatliche Jobs zu steuern, die normalerweise von cron gesteuert werden.

Es tut mir leid, dass ich so lange gebraucht habe, um darauf zurück zu kommen. Es hat großartig gearbeitet. Matthew G vor 11 Jahren 0
0
Daniel Andersson

Um die Crontab von root zu bearbeiten, führen Sie Folgendes aus:

sudo crontab -e 

Füllen Sie eine Zeile mit zB:

0 0 * * * /usr/sbin/ntpdate-debian -s 

Dadurch wird der angegebene Befehl ntpdatemit switch -seinmal alle Mitternacht ausgeführt (siehe info 'crontab(5)'Dokumentation des Formats oder wahrscheinlich nur die kommentierten ersten Zeilen der Crontab selbst).

Einige kleine Hinweise:

  • Beachten Sie, dass die Befehle in crontab normalerweise über ausgeführt werden. Dies ist /bin/shauf Debian-basierten Systemen nicht Bash, sondern Dash. Verwenden Sie keine Bashismen in den Befehlen. Nach meiner Erfahrung ist es nicht ungewöhnlich, falsche Weiterleitungen und falsche Annahmen darüber zu sehen, welchen Zeichen es zu entkommen ist.
  • Es ist oft eine gute Idee, den Binärdateien vollständige Pfade zu geben, da sich die PATHVariable zwischen root und Ihrem regulären Benutzer unterscheiden kann. Ich habe Situationen gesehen, in denen ein Befehl einen anderen aufgrund unterschiedlicher PATHVariablen abgeschattet hat, was eine unnötige Komplikation darstellt.

    Es kann auch als ein gewisses Sicherheitsrisiko betrachtet werden, einfach das Programm auszuführen, das sich zuerst im Pfad befindet, da eine schlampige Konfiguration dazu führen kann, dass jemand eine Binärdatei ersetzt (wenn man solche Rechte auf dem System hat, eine) kann es wahrscheinlich sowieso bis zu einem gewissen Grad, aber trotzdem)

Cron führt den Befehl alle 24 Stunden aus, solange die Maschine zu dieser Zeit läuft. Wenn Sie die Maschine "aufholen" wollen, wenn sie bei einer geplanten Ausführung ausgeschaltet wurde, sollten Sie sich genau ansehen anacron, ob sie genau diesen Zweck hat.