GNU/Linux >> LINUX-Kenntnisse >  >> Linux

CentOS / RHEL :Anfängerleitfaden zu cron

Cron ist ein zeitbasierter Job-Scheduler, der so konfiguriert ist, dass er Befehle zu bestimmten Zeiten oder Intervallen ausführt. Jeder Benutzer hat eine Cron-Tabelle, die definiert, was in welchem ​​Intervall ausgeführt werden soll. crontab Der Befehl wird zum Erstellen, Ändern und Anzeigen von Cron-Jobs verwendet.

Konfigurationsdateien und Verzeichnisse

– Cron wird von einer Reihe von Dateien namens crontabs gesteuert.
– Die Master-Datei befindet sich in /etc/crontab , zusammen mit Crontab-Dateien für die Benutzer in /var/spool/cron/ . In letzterem Verzeichnis erhalten die Dateien den gleichen Namen wie der Benutzername eines Benutzers.
– Die Datei /etc/crontab führt in regelmäßigen Abständen automatisch Elemente in mehreren Unterverzeichnissen aus. Die Skripte werden in verschiedenen Verzeichnissen abgelegt – /etc/cron.* werden gemäß dem unten angegebenen Zeitintervall ausgeführt. Alle Skripte in diesen Verzeichnissen werden mit Root-Rechten ausgeführt.

Verzeichnis Zeit
/etc/cron.hourly Erste Minute jeder Stunde
/etc/cron.daily Jeden Tag zwischen 3:05 Uhr und 22:55 Uhr
/etc/cron.weekly Zwischen 3:25 Uhr und 23:10 Uhr nach 7 Tagen seit der letzten Hinrichtung
/etc/cron.monthly Zwischen 3:45 Uhr und 23:30 Uhr nach einem Monat seit der letzten Hinrichtung

– Alles, was der Systemadministrator tun muss, ist, ein Shell-Skript oder einen Link zu einer ausführbaren Datei in einem der Verzeichnisse zu platzieren, und es wird automatisch zum richtigen Zeitpunkt ausgeführt.

crontab-Syntax

Das Einrichten einer Crontab auf Benutzerebene ist etwas anders. Die Dateien in /var/spool/cron werden nicht direkt bearbeitet. Stattdessen wird ein Programm namens crontab verwendet, um sie zu manipulieren. Die Syntax des crontab-Befehls lautet:

Usage:
 crontab [options] file
 crontab [options]
 crontab -n [hostname]

Options:
 -u [user]  define user
 -e         edit user's crontab
 -l         list user's crontab
 -r         delete user's crontab
 -i         prompt before deleting
 -n [host]  set host in cluster to run users' crontabs
 -c         get host in cluster to run users' crontabs
 -s         selinux context
 -x [mask]  enable debugging

Wie man eine Crontab bearbeitet

Crontab bearbeiten Sie am besten mit dem Befehl crontab -e . Eine andere Möglichkeit, dies zu tun, ist:

1. su to the user whose cron you want to change
2. crontab -l > file      [ copy the crontab to a file ].
3. vi file                [ make changes to the file as per your need ]
4. crontab file           [ this makes the "file" as new crontab ]

Danach muss der Cron-Daemon nicht neu gestartet werden.

Interpretation der Zeit- und Datumsfelder

Jeder Cron-Befehl hat 5 Zeit- und Datumsfelder, gefolgt von einem Benutzernamen [optional], und wenn dies die System-Crontab-Datei ist, folgt darauf ein Befehl. Befehle werden ausgeführt, wenn die in den Zeit-/Datumsfeldern angegebene Zeit mit der aktuellen Zeit übereinstimmt.

field          allowed values
-----          --------------                  
minute         0-59                  
hour           0-23                  
day of month   0-31                  
month          0-12 (or names, see below)                  
day of week    0-7 (0 or 7 is Sun, or use names)

Ein Feld kann ein Sternchen (*) sein, das immer für erster bis letzter steht . Wenn es also im Monatsfeld verwendet wird, bedeutet es jeden Monat von 0 (Januar) bis 12 (Dez).

Beispiel-Cron-Job:

# Example of job definition:
 .---------------- minute (0 - 59)
 |  .------------- hour (0 - 23)
 |  |  .---------- day of month (1 - 31)
 |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
 |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
 |  |  |  |  |
 0  1  *  *  *  [user-name] [command to be executed]

Beispiele für das Setzen von Cronjobs

Nachfolgend finden Sie einige Beispiele für die Verwendung von crontab, um zu verstehen, wie eine Aufgabe geplant wird:
Beispiel: jeden Tag fünf Minuten nach Mitternacht einen Job ausführen :

5 0 *  *  *     /home/oracle/scan_asm_devices.sh

Beispiel: Ausführen eines Jobs um 17:30 Uhr am 1. eines jeden Monats :

30 17 1  *  *   mail -s "It's 5:30pm"

Beispiel: Jeden Montag um 4:05 einen Job ausführen.

5  4  *  *  mon     echo "run at 5 after 4 every monday"

Benutzerzugriffskontrolle

– Um Benutzern den Zugriff auf die Crontabs zu ermöglichen, können die Dateien /etc/cron.allow und /etc/cron.deny verwendet werden, um den Zugriff zuzulassen oder zu verweigern. Geben Sie einfach einen Benutzernamen in eine der beiden Dateien ein, um den Zugriff auf die Crontab zuzulassen oder zu verweigern.
– Wenn die Datei /etc/cron.allow existiert, wird die Datei /etc/cron.deny nicht verwendet.
– In der Standardinstallation existiert nur eine leere Datei /etc/cron.deny.
– Wenn keine der Dateien existiert, erhält nur der Root-Benutzer Zugriff, um einen Job über cron zu planen.


Linux
  1. Automatisieren Sie Systemaufgaben mit crontab auf CentOS 7

  2. CentOS / RHEL 7:Einsteigerleitfaden für Firewalld

  3. CentOS / RHEL :Einsteigerleitfaden für vsftpd (Installation und Konfiguration)

  4. Anfängerleitfaden zum automatischen Mounten von Dateisystemen in CentOS / RHEL

  5. Leitfaden für Anfänger zu NFS in CentOS / RHEL

Cron Job:Ein umfassender Leitfaden für Anfänger 2022

Planen von Cron-Jobs mit Crontab

Ein Leitfaden für Anfänger zu LVM

Ein Leitfaden für Anfänger zu Cron-Jobs

CentOS / RHEL 7:Leitfaden für Anfänger zu systemd-Diensteinheiten

Vollständiger Leitfaden zur Konfiguration von iSCSI in CentOS / RHEL 7