Jeder Benutzer hat seine eigenen crontab
.
Um es zu sehen, tippe einfach
crontab -l
und ja du hast es richtig gesehen, wenn du ein hinzufügen willst crontab
dann mach einfach
crontab -e
Zum ersten Mal werden Sie nach dem zu verwendenden Editor gefragt crontab
. Als Anfänger würde ich die Verwendung von Nano empfehlen, da dies der einfachste zu verwendende Editor ist.
Die Crontab selbst funktioniert so
MIN = Minute 0-60
HOUR = Hour [24-hour clock] 0-23
MDAY = Day of Month 1-31
MON = Month 1-12 OR jan,feb,mar,apr ...
DOW = Day of Week 0-6 OR sun,mon,tue,wed,thu,fri,sat
COMMAND = Command to be run Any valid command-line
Also, um zB nur am Montag alle 15 Minuten einen Job auszulösen, machst du es so
*/15 * * * mon /home/me/yourscript.sh
und JA, es ist sehr wichtig, dass Sie Ihren Cronjob in der Crontab des Benutzers ablegen, der über genügend Rechte verfügt, um ihn auszuführen.
Wenn Ihr Skript root oder ein spezieller Benutzer sein muss, stellen Sie sicher, dass Sie diesem Benutzer su zuweisen und dort den Cronjob hinzufügen.
Auch sehr wichtig!
cronjob ist doof! Ja, ich habe es gesagt. Vergewissern application/command/script
Sie sich immer, dass Sie den vollständigen Pfad eingeben, mit dem Sie arbeiten, da Crontab nicht funktioniert .bashrc
. Sie müssen immer sicherstellen, dass Sie cron mitteilen, wo sich die Dateien und Verzeichnisse befinden.
Um den Rest Ihrer Fragen zu beantworten:
Natürlich läuft es von alleine, dafür ist es da. Aber Sie müssen überprüfen, ob Cronjob wirklich funktioniert oder ob etwas fehlt. Logge dich zB in eine Logdatei ein, um zu sehen, ob es wirklich funktioniert.
Und NEIN, ein Neustart ist nicht erforderlich. Ein Neustart unter Linux ist normalerweise nur erforderlich, wenn Sie einen neuen Kernel installieren. Damit es funktioniert, müssten Sie neu starten. Fast alles andere ist unter Linux ohne Neustart möglich. Natürlich gibt es Ausnahmen, aber im Allgemeinen ist diese Aussage richtig.
crontab -e
können Sie Ihren Benutzer crontab ohne sudo bearbeiten. Die Benutzer-Crontabs befinden sich in/var/spool/cron/crontabs
einem Verzeichnis, auf das ohne Superuser-Berechtigung nicht zugegriffen werden kann (jedoch so, dass das Verzeichnis nach dem Löschen von Berechtigungen noch gelesen werden kann). Selbst wenn Sie sudo verwenden, um die Datei direkt zu bearbeiten, wird oben die große Warnung "DIESE DATEI NICHT BEARBEITEN" angezeigt. Die Datei kann mit demcrontab
Befehl bearbeitet werden, der eine temporäre Kopie verwendet/tmp
und anschließend installiert wird es nach dem Speichern.