Speicherort der Crontab-Datei


52

Wie viele (die meisten?) andere bearbeite ich meine crontab über crontab -e, wo ich alle Routineoperationen wie inkrementelle Sicherung, ntpdate, verschiedene rsync-Operationen sowie die Themen für meinen Desktop-Hintergrund einmal im Jahr behalte. Soweit ich weiß, wird die Datei bei einer Neuinstallation oder einem neuen Benutzer auch automatisch erstellt, wenn sie nicht vorhanden ist. Ich möchte diese Datei jedoch auf einen anderen Benutzer kopieren. Wo befindet sich die Datei, die ich gerade bearbeite?

Wenn dies zwischen den Distributionen variiert, verwende ich Centos5 und Mint 17


15
+1 nur für Ihre Desktop-Hintergrund Weihnachten Themen einmal im Jahr
Celada

5
@ Celada Es mag nicht häufig sein, aber es ist dennoch eine Routineaufgabe.
Jarmund

Antworten:


53

Der Speicherort der cronDateien für einzelne Benutzer ist /var/spool/cron/crontabs/.
Von man crontab:

Jeder Benutzer kann eine eigene crontab haben, und obwohl dies Dateien sind /var/spool/cron/crontabs, sind sie nicht dafür vorgesehen, direkt bearbeitet zu werden.


7
Die Schlüsselwörter lauten "Sie dürfen nicht direkt bearbeitet werden". Daher ist diese Antwort ohne Celadas folgenden Befehl unvollständig. Dies bietet eine sicherere Antwort auf den Teil "Kopie an einen anderen Benutzer" der Frage. Wenn die Benutzer die Gewohnheit haben, Crontabs direkt zu bearbeiten, ohne sie über den Befehl crontab abzusenden, müssen sie auf eine Vielzahl von Überprüfungen verzichten, die der Befehl vorsieht.
Monty Harder

@MontyHarder Ich bin damit einverstanden, dass "sie nicht direkt bearbeitet werden sollen", aber was ist, wenn dies erforderlich ist, z. B. wenn ein Eintrag in der Crontab über ein Bash-Skript erforderlich ist. Sie müssen die genaue Datei verwenden, ich glaube nicht, dass eine externe Schnittstelle in diesem Fall helfen wird. Korrigieren Sie mich, wenn ich falsch liege.
Prabhat Kumar Singh

@PrabhatKumarSingh Sie sollten die Datei immer noch nicht direkt bearbeiten. Wenn Sie Celadas folgenden Befehl lesen, hätten Sie ein Beispiel dafür gesehen, wie ein Skript eine crontab-Datei manipulieren könnte, ohne sie direkt zu bearbeiten. man crontaberklärt, wie das funktioniert.
Monty Harder

34

heemayl ist in Bezug auf den Speicherort von crontab-Dateien unter Linux korrekt , kann sich jedoch unter anderen Betriebssystemen unterscheiden und "theoretisch" auch an einem anderen Speicherort unter Linux befinden. Wenn eine spezielle Schnittstelle für den Zugriff auf die Dateien bereitgestellt wird, sollten Sie diese verwenden. Dadurch wird sichergestellt, dass crondie Dateien vor der Installation überprüft werden, dass die Dateien über die erforderlichen Berechtigungen verfügen usw.

Daher sollten Sie eine Crontab über diese Schnittstelle von einem Benutzer auf einen anderen kopieren und nicht direkt auf die Dateien zugreifen.

crontab -u <user1> -l | crontab -u <user2>

3
Es gibt viele gute Gründe, warum Crontab-Dateien nicht direkt von etwas anderem als dem Betriebssystem selbst bearbeitet werden sollten. Dies ist eine weitaus bessere Lösung. Ich denke wirklich, dass es in die offizielle Antwort aufgenommen werden muss.
Monty Harder

@MontyHarder Es gibt nicht wirklich eine "offizielle" Antwort. Es gibt die Antwort, die die fragende Person als persönlich nützlich für sie ausgewählt hat (die mit dem Häkchen) und die Antwort, die die Community ausgewählt hat (mit den meisten positiven Stimmen). Kurz gesagt, Sie haben 15 Wiederholungen. Sie können vorschlagen, dass dies die richtige Antwort ist, indem Sie sie abstimmen. Wenn Sie Verbesserungen für die andere Antwort vorschlagen möchten, müssen Sie diese Antwort kommentieren. Andernfalls wird der Autor nicht über Ihren Kommentar informiert.
Derobert

2
Die Folge dieser Antwort ist, dass man die Ausgabe von crontab -lin eine Datei umleiten , die Datei auf das andere System verschieben und sie weiterleiten sollte crontab. Oder vielleicht sogar direkt ( crontab -l | ssh $remote_host crontab).
Blacklight Shining

6
"Wenn eine spezielle Schnittstelle für den Zugriff auf die Dateien bereitgestellt wird, sollten Sie diese verwenden." Stellen Sie sich vor, jede Anwendung bietet eine spezielle Oberfläche zum Bearbeiten von Konfigurationsdateien, anstatt sie nur über das fs verfügbar zu machen. Das wäre ziemlich ärgerlich, den Überblick zu behalten.
Witiko

1
Als ursprünglicher Fragesteller denke ich, ich sollte darüber nachdenken: Die akzeptierte Antwort wurde auf der Grundlage meiner Frage im wörtlichen Sinne ausgewählt; der Speicherort der Datei. Meine Absichten für diese Datei sind irrelevant. Ich denke nicht, dass das Bearbeiten der zusätzlichen Informationen die Antwort ändert, aber es könnte als überflüssig angesehen werden.
Jarmund
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.