Ich möchte eine Aufgabe planen, die regelmäßig ausgeführt wird, und habe gehört, dass dies mit Cron möglich ist.
Wie füge ich Cron-Jobs in Ubuntu hinzu?
Setzen Sie ein Shell - Skript in einem dieser 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. B. zweimal im Monat oder alle 5 Minuten. Gehen Sie zum Terminal und geben Sie Folgendes ein:
crontab -e
Dies öffnet Ihre persönliche crontab (cron Konfigurationsdatei). Die erste Zeile in dieser Datei erklärt alles! In jeder Zeile können Sie einen auszuführenden Befehl und seinen Zeitplan definieren, und das Format ist recht einfach, wenn Sie den Überblick haben. Die Struktur ist:
minute hour day-of-month month day-of-week command
Für alle Nummern, die Sie verwenden können, werden Listen, z. B. 5,34,55
im Minutenfeld, um 5, 34 und 55 nach jeder definierten Stunde ausgeführt.
Sie können auch Intervalle verwenden. Sie sind wie folgt definiert: */20
. Dieses Beispiel bedeutet alle 20 und entspricht in der Spalte "Minuten" 0,20,40
.
So führen Sie jeden Montag um 5:30 Uhr nachmittags 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 reicht, wobei 0 für Sonntag steht.
Sie können hier mehr lesen .
*/15 * * * * /path/to/command
tun@reboot /path/to/command
können, um beim Start etwas auszuführen.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 ausführen können
EDITOR="gedit" crontab -e
(wobei die Crontab-Datei mit gedit bearbeitet wird) oder einfachcrontab -e
(wobei der Standardeditor verwendet wird). in einem Terminal.Wenn Sie beispielsweise alle 10 Minuten etwas ausführen möchten, fügen Sie eine Zeile wie diese hinzu
und speichern Sie die Datei.
Sie können den Inhalt des Benutzers crontab mit sehen
crontab -l
.Um einen Cron-Job hinzuzufügen, der als root ausgeführt wird, können Sie die crontab von root bearbeiten, indem Sie ausführen
sudo crontab -e
.Am flexibelsten ist die Verwendung der System-Crontab,
/etc/crontab
die Sie nur mit Root-Rechten bearbeiten können. In dieser Datei muss der Benutzer jeden Befehl wie angegeben ausführen, damit Sie Ihre Befehle als root (falls Sie diese Berechtigungsstufe benötigen) oder als anderer Benutzer im System ausführen können.Wenn Sie beispielsweise alle 10 Minuten etwas als root ausführen möchten, fügen Sie eine Zeile wie diese hinzu
(Beachten Sie die Hinzufügung des Benutzers zur Zeile)
Sie können den Inhalt der System-Crontab-Datei mit sehen
cat /etc/crontab
.Weitere Informationen finden Sie unter: https://help.ubuntu.com/community/CronHowto
quelle
Wenn Sie es vorziehen, eine grafische Benutzeroberfläche zu verwenden, können Sie im Software Center Geplante Aufgaben installieren (oder ausführen
sudo apt-get install gnome-schedule
). Es wird eine leistungsstarke Benutzeroberfläche zum Hinzufügen von Cron-Aufgaben bieten.Beachten Sie, dass bei Verwendung dieser Methode Aufgaben standardmäßig als Ihr eigener Benutzer und nicht als Root ausgeführt werden. Das ist normalerweise eine gute Sache.
quelle
Ich empfehle KDE Task Scheduler (
kde-config-cron
) . Greifen Sie über die Systemeinstellungen im Taskplaner- Modul darauf zu.Es verwaltet sowohl persönliche als auch System-Crontabs und die einfache Erstellung der Zeitgrenzen hat mich sehr überrascht (siehe Abbildung unten). Ich denke, dieser Teil wird wirklich unterschätzt.
quelle
KDE Task Scheduler funktioniert nicht unter Ubuntu. Es funktioniert nur in KDE-Systemen wie KUbuntu. Für Nicht-KDE-Systeme bevorzugen Sie die Verwendung von gnome-schedule
Die App ist Geplante Aufgaben im Dash.
quelle
I can't install gnome schedule on Ubuntu 16.04
@ askubuntu.com/questions/785657/… an . Es gibt ein Paket zum Herunterladen @ bugs.launchpad.net/ubuntu/+source/gnome-schedule/+bug/1576060/… .$ sudo dpkg -i gnome-schedule_2.3.0-0ubuntu16.04_amd64.deb
Ich wollte einen Cron-Job so einrichten, dass er ein Bash-Skript durchläuft, sodass beim Ausführen des Skripts ein Cron-Job hinzugefügt wird.
Ich habe festgestellt, dass, wenn Sie Gebrauch machen von:
Dann erstellt es die Datei:
/var/spool/cron/crontabs/root
Dabei ist root der Name des Benutzers, der den Befehl crontab ausführt. Auf dieser Basis und zumindest in 14.04 können wir die folgenden Bash-Befehle ausführen, um einen neuen Cron-Job zu erstellen:
Wir müssen auch den richtigen Besitz für die Datei festlegen:
Und stellen Sie die richtigen Berechtigungen ein:
Wenn
crontab -e
die Liste bereits Cron-Jobs enthält, können Sie diese mit dem folgenden Befehl anhängen:quelle
Beispiel für das Ausführen eines Skripts
test_cron.sh
von cron jede Minute unter Ubuntu 18.04 unter Verwendung eines symbolischen Links:test_cron.sh
Datei:Wenn Sie Umgebungsvariablen in Ihrem Skript wie
$USER
in Pfaden verwenden möchten, ist es besser, einen präzisen Pfad einzugeben, da bash Ihre Variablen zur Ausführungszeit nicht kennt.myname
ist Benutzername (Teil der Root-Gruppe, ich bin nicht sicher, ob Root-Berechtigungen erforderlich sind).Ermöglichen Sie Benutzern das Festlegen von Cron-Jobs. Bei Bedarf wird eine Datei erstellt:
Der Pfad zum Skript lautet
/home/myname/shell/test_cron.sh
Ich habe den Besitzer gewechselt und es ausführbar gemacht:
Ich habe einen symbolischen Link hinzugefügt:
Angemeldet, da
myname
ichtest_cron
jede Minute eine neue Aufgabe hinzugefügt habe, die ausgeführt werden soll.So überprüfen Sie, ob der Befehl in der Liste enthalten ist:
Ausführung überprüfen
quelle