Wie richte ich einen Cron-Job ein?

495

Ich möchte, dass eine Aufgabe regelmäßig ausgeführt wird, und ich habe gehört, dass Cron dazu geeignet ist

Wie füge ich Cron-Jobs in Ubuntu hinzu?

    
Gabriel Solomon 16.08.2010, 10:25

6 Antworten

613

Platzieren Sie ein Shell-Skript in einem der folgenden Ordner: /etc/cron.daily , /etc/cron.hourly , /etc/cron.monthly oder /etc/cron.weekly .

Wenn Ihnen dies nicht ausreicht, können Sie spezifischere Aufgaben hinzufügen, z. zweimal im Monat oder alle 5 Minuten. Gehen Sie zum Terminal und geben Sie Folgendes ein:

crontab -e

Dadurch wird Ihre persönliche Crontab (Cron-Konfigurationsdatei) geöffnet. Die erste Zeile in dieser Datei erklärt alles! In jeder Zeile können Sie einen auszuführenden Befehl und dessen Zeitplan definieren. Das Format ist ziemlich einfach, wenn Sie den Dreh raus haben. Die Struktur ist:

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

Für alle Nummern können Sie Listen verwenden, z. 5,34,55 im Minutenfeld bedeutet, dass nach 5, 34 und 55 nach der definierten Stunde gelaufen wird.

Sie können auch Intervalle verwenden. Sie sind wie folgt definiert: */20 . Dieses Beispiel bedeutet jedes 20., also entspricht es in der Minutenspalte 0,20,40 .

So führen Sie jeden Montag um 5:30 Uhr einen Befehl aus:

30 17 * * 1 /path/to/command

oder alle 15 Minuten

*/15 * * * * /path/to/command

Beachten Sie, dass der Wochentag von 0 bis 6 geht, wobei 0 für Sonntag steht.

Weitere Informationen finden Sie hier .

    
LassePoulsen 09.03.2018, 03:07
94

Wenn der Job, den Sie ausführen möchten, mit den gleichen Berechtigungen wie Ihr Benutzer ausgeführt werden kann, empfehle ich die Verwendung einer Benutzer-Crontab, die Sie bearbeiten können, indem Sie EDITOR="gedit" crontab -e (mit gedit zum Bearbeiten der Crontab-Datei) oder einfach% co_de ausführen % (der den Standardeditor verwendet) in einem Terminal.

Wenn Sie beispielsweise alle 10 Minuten etwas ausführen möchten, fügen Sie eine solche Zeile hinzu

*/10 * * * * /usr/bin/somedirectory/somecommand

und speichern Sie die Datei.

Sie können den Inhalt der Benutzer crontab mit crontab -e sehen.

Um einen Cron-Job hinzuzufügen, der als Root ausgeführt wird, können Sie die Crontab-Datei von Root bearbeiten, indem Sie crontab -l ausführen.

Am flexibelsten ist es, das System crontab sudo crontab -e zu verwenden, das Sie nur mit Root-Rechten bearbeiten können. In dieser Datei muss der Benutzer jeden Befehl wie angegeben ausführen, sodass Sie Ihre Befehle als root (falls Sie diese Berechtigungsebene benötigen) oder einen anderen Benutzer auf dem System ausführen können.

Wenn Sie beispielsweise alle 10 Minuten etwas als Root ausführen möchten, fügen Sie eine solche Zeile hinzu

*/10 * * * * root /usr/bin/somedirectory/somecommand

(Beachten Sie die Hinzufügung des Benutzers zur Zeile)

Sie können den Inhalt der System-Crontab-Datei mit /etc/crontab sehen.

Weitere Informationen finden Sie unter: link

    
Li Lo 16.08.2010 10:58
51

Wenn Sie lieber eine GUI verwenden, können Sie im Software Center Geplante Aufgaben installieren (oder sudo apt-get install gnome-schedule ausführen). Es wird eine leistungsfähige Benutzeroberfläche zum Hinzufügen von cron-Aufgaben zur Verfügung stellen.

Beachten Sie, dass bei Verwendung dieser Methode Aufgaben standardmäßig als eigener Benutzer und nicht als root ausgeführt werden. Dies ist normalerweise eine gute Sache.

    
Javier Rivera 16.08.2010 11:21
24

Ich empfehle den KDE-Taskplaner ( kde-config-cron ) . Greifen Sie von dort aus auf die Systemeinstellungen im Modul Task Scheduler .

Es verwaltet sowohl persönliche als auch systemeigene Crontabs, und die einfache Erstellung der Zeitgrenzen hat mich sehr überrascht (siehe Abbildung unten). Ich denke, dieser Teil wird wirklich unterschätzt.

    
gertvdijk 01.02.2013 00:59
11

KDE Task Scheduler funktioniert nicht im regulären Ubuntu. Es funktioniert nur in KDE-Systemen wie KUbuntu. Für Nicht-KDE-Systeme verwenden Sie vorzugsweise gnome-schedule

$ sudo apt-get install gnome-schedule

Die App enthält geplante Aufgaben im Dash.

    
Antonio 11.02.2014 15:35
9

Ich wollte einen Cron-Job so einstellen, dass er ein Bash-Skript ausführt. Wenn Sie das Skript ausführen, wird ein Cron-Job hinzugefügt.

Ich habe das erkannt, wenn Sie Folgendes verwenden:

crontab -e 

Dann wird die Datei erstellt:

/var/spool/cron/crontabs/root

Dabei ist root der Name des Benutzers, der den Befehl crontab ausführt. Auf dieser Grundlage und zumindest in 14.04 können wir die folgenden Bash-Befehle ausführen, um einen neuen Cron-Job zu erstellen:

echo "30 17 * * 1 /path/to/command" > /var/spool/cron/crontabs/root

Wir müssen auch den korrekten Besitz für die Datei festlegen:

chown root:root /var/spool/cron/crontabs/root

Und legen Sie die richtigen Berechtigungen fest:

chmod 600 /var/spool/cron/crontabs/root

Wenn beim Ausführen von crontab -e bereits Cron-Jobs in der Liste vorhanden sind, können Sie sie mit folgendem Befehl an die Liste anhängen:

echo "30 17 * * 1 /path/to/command" >> /var/spool/cron/crontabs/root
    
Craig van Tonder 27.09.2016 22:25

Tags und Links