2014-02-14 13 views
29

Ich kann die Antwort auf diese Frage nicht verstehen: "Was ist der Unterschied zwischen cron und crontab?" Sind beide Scheduler, von denen einer die Dateien einmal ausführt und der andere die Dateien in einem regelmäßigen Intervall ausführt oder programmiert cron einen Job und crontab speichert sie in einer Tabelle oder Datei zur Ausführung?Unterschied zwischen Cron und Crontab?

Wiki page für Cron erwähnt:

Cron durch eine crontab (cron Tabelle) Datei angetrieben wird, eine Konfigurationsdatei, die Shell-Befehle spezifiziert periodisch auf einem bestimmten Zeitplan ausgeführt.

Aber wiki.dreamhost für crontab mentiones:

Der Befehl crontab in Unix- und Unix-ähnlichen Betriebssystemen zu finden, ist verwendeten Befehle planen periodisch ausgeführt werden. Es liest eine Serie von Befehlen aus der Standardeingabe und sammelt sie in einer Datei , die später als "crontab" bezeichnet wird und deren Anweisungen ausgeführt werden.

gesagt, wenn ich einen Job planen wiederholt werden: (aus dem Wiki Zitiert)

1 0 * * * printf > /var/log/apache/error_log 

oder einen Job Ausführung nur einmal

at -f myScripts/call_show_fn.sh 1:55 2014-10-14 

Bin ich eine cron Funktion tun in beiden die Befehle, die in crontab OR geschoben wird, ist die erste eine crontab und die zweite eine cron Funktion?

Antwort

26

cron ist der allgemeine Name für den Dienst, der geplante Aktionen ausführt. crond ist der Name des Dämons, der im Hintergrund ausgeführt wird und crontab Dateien liest. Ein crontab ist eine Datei, Jobs im Format

minute hour day-of-month month day-of-week command 

crontabs enthalten, werden normalerweise durch das System in /var/spool/<username>/crontab gespeichert. Diese Dateien sollen nicht direkt bearbeitet werden. Sie können den Befehl crontab verwenden, um einen Texteditor aufzurufen (was Sie für die Variable EDITOR env definiert haben), um eine Crontab-Datei zu ändern.

Es gibt verschiedene Implementierungen von cron. Häufig wird es crontab Dateien pro Benutzer (mit dem Befehl zugegriffen crontab -e) sowie System crontabs in /etc/cron.daily, /etc/cron.hourly usw.

In Ihrem ersten Beispiel, das Sie über einen crontab einen Job Scheduling. In Ihrem zweiten Beispiel verwenden Sie den Befehl at, um einen Job zur späteren Ausführung in die Warteschlange zu stellen.

+0

so..in meinem Beispiel Befehle .... beide sind 'cron', die in' crontab' Datei gespeichert sind ??? – NoobEditor

+0

Ihr erstes Beispiel würde in eine Crontab-Datei gehen. Sie würden es über ** crontab -e ** hinzufügen. Das zweite Beispiel verwendet den ** at ** -Befehl und wäre nicht in einer Crontab. –

+0

so zweites Beispiel ist weder 'cron' nicht' crontab' wegen ** at ** ?? – NoobEditor