Nutzen Sie den Befehl crontab Linux, um verschiedene alltägliche und sich wiederholende Aufgaben zu automatisieren und Ihr Leben zu vereinfachen. Dieses hervorragende und benutzerfreundliche Tool kann in Kombination mit einigen Skripten nicht nur alle Arten von Aufgaben automatisieren, sondern auch dazu beitragen, einfache menschliche Fehler oder Vergesslichkeit zu vermeiden.
Hier erfahren Sie, was Crontab ist, wie Sie automatisierte Jobs hinzufügen und einige Beispiele aus der Praxis.
Was ist Crontab?
Crontab ist ein Daemon-Prozess, der auf fast allen Linux-Computern im Hintergrund ausgeführt wird und zum Planen und Ausführen automatisierter Aufgaben in festgelegten Zeitintervallen verwendet wird. Es wird auch häufig von Softwareentwicklern verwendet, um zeitaufwändige Aufgaben im Hintergrund auszuführen.
Dies kann alles sein, einschließlich, aber nicht beschränkt auf das Senden von Batch-E-Mails, das Überprüfen Ihres Twitter-Feeds, das Durchführen von Backups oder einfach das Durchführen einer Erinnerung.
Grundlegende Crontab-Befehle
Jeder Linux-Benutzer auf dem Computer verfügt über eine eigene Crontab-Datei, die seine aktiven Crontab-Jobs enthält. Hier sind einige grundlegende Terminalbefehle, mit denen Sie die crontab-Datei anzeigen und ändern können:
- crontab-l Listen Sie alle Crontab-Jobs auf.
- crontab -e Bearbeiten Sie die Crontab-Datei.
- crontab -r Entfernen Sie alle Einträge aus der crontab-Datei.
Die obigen Befehle gelten für die jetzige Benutzer Crontab-Datei. Wenn Sie die Crontab-Datei eines anderen Benutzers ändern müssen, verwenden Sie einfach die -u Möglichkeit. Zum Beispiel können Sie die bearbeiten jdoe Crontab-Datei des Benutzers mit dem Befehl:
Möchten Sie Benutzer unter Ubuntu Linux besser verwalten? Die Antwort besteht darin, Gruppen zu erstellen und dann die Ubuntu-Funktion zum Hinzufügen von Benutzern zu verwenden.
sudo crontab -ujdoe -e
Format von Crontab-Jobs
Jeder Crontab-Job besteht aus einer Zeile und ist wie folgt formatiert:
MINUTE STUNDE TAG MONAT WOCHENTAG BEFEHL
In der folgenden Tabelle werden die verschiedenen Elemente des Crontab-Jobs erläutert:
Element | Ranage | Beschreibung |
---|---|---|
Minute | 0 - 59 | Die Minute, um den Crontab-Job um auszuführen. |
Stunde | 0 - 23 | Die Stunde, um die der Crontab-Job ausgeführt werden soll. |
Tag | 1 - 31 | Der Tag des Monats, an dem der Crontab-Job ausgeführt werden soll. |
Monat | 1 - 12 | Der Monat, in dem der Crontab-Job ausgeführt werden soll. |
Wochentag | 0 - 6 | Der Wochentag, an dem der Crontab-Job ausgeführt werden soll. |
Befehl | Jeder Linux-Befehl, den Sie auf dem Terminal ausführen können. |
Sie können in jedem der Felder ein Sternchen (*) verwenden, um einen Platzhalter zu kennzeichnen. Dies bedeutet, dass der Crontab-Job unabhängig von diesem Zeitraum ausgeführt wird. Zum Beispiel wird der folgende Crontab-Job jede Nacht genau um 3:20 Uhr ausgeführt:
20 3 * * * /root/backup.sh
Mehrere Werte
Jeder Zeitraum kann auch mehrere Elemente enthalten. Sie können die genauen Werte angeben, indem Sie sie durch ein Komma trennen. Der folgende Crontab-Job wird stündlich 20 und 50 Minuten nach der vollen Stunde ausgeführt:
20,50 * * * * /path/to/command.sh
Wenn Sie den Crontab-Job jedoch in bestimmten Intervallen innerhalb eines bestimmten Zeitraums ausführen möchten, können Sie ihn verwenden */ZEITRAUMund der folgende Crontab-Job wird automatisch alle drei Stunden um 15 Minuten nach der vollen Stunde ausgeführt:
15 * / 3 * * * /path/to/command.sh
Crontab Jobs ruhig halten
Abhängig davon möchten Sie möglicherweise alle Ausgaben der Crontab-Jobs entfernen, damit sie nicht im E-Mail-Ordner Ihres Systems landen. Sie können dies durch Anhängen tun > / dev / null 2> & 1 zu jedem crontab Job. Zum Beispiel:
0 6 15 * * /path/to/backup.sh> / dev / null 2> & 1
Hinzufügen von Crontab-Jobs
Im Allgemeinen ist die am häufigsten verwendete Methode zum Hinzufügen oder Ändern von Crontab-Jobs die crontab -e Befehl. Führen Sie diesen Befehl im Terminal aus:
crontab -e
Dies öffnet eine Texteditor sowie Nano mit dem Inhalt Ihrer Crontab-Datei. Jeder Crontab-Job befindet sich in einer Zeile, und Sie können nach Bedarf Zeilen hinzufügen, ändern und entfernen. Speichern und schließen Sie die Datei, indem Sie auf drücken Strg + W., gefolgt von der Y. und Eingeben Schlüssel, die sofort alle Crontab-Jobs in der Datei aktivieren.
Verknüpfung zum Hinzufügen von Jobs
Anstatt die Crontab-Datei manuell zu ändern, können Sie einen einzelnen Befehl ausführen, um einen Job hinzuzufügen. Wenn Sie beispielsweise diesen Crontab-Job hinzufügen möchten, der jeden Sonntag um 14:00 Uhr ausgeführt wird:
0 14 * * 0 /path/to/command.sh
Sie können den Job mit dem einzigen Befehl zu Ihrer crontab-Datei hinzufügen:
(crontab -l; echo "0 14 * * 0 /path/to/command.sh";) | crontab
Der obige Befehl listet einfach alle Jobs auf, die sich derzeit in Ihrer Crontab-Datei befinden, druckt den neuen Job und leitet alles weiter crontab Ersetzen seines Inhalts.
Auflisten / Entfernen der Crontab-Datei
Sie können alle derzeit in Ihrer crontab-Datei aktiven Jobs mit dem folgenden Befehl auflisten:
crontab -l
Sie können auch alle Crontab-Jobs entfernen und den Inhalt Ihrer Crontab-Datei mit dem folgenden Befehl leeren:
crontab -r
Beispiel: Sounds abspielen!
Benötigen Sie während der Arbeit alle zwei Stunden eine kurze Erinnerung, damit Sie wissen, dass die Zeit vergangen ist? Holen Sie sich Ihren Lieblings-Audioclip in fast jedem Format (.wav, .mp4, alles) und wenn er gespeichert ist (zum Beispiel) /home/myuser/myalert.wav Lassen Sie es automatisch mit dem Crontab-Job spielen:
0 * / 2 * * * aplay /home/myuser/myalert.wav
Wie wäre es, wenn Sie einen schönen Abschied von der Arbeit der Woche geben und Ihr Lieblingslied jeden Freitagnachmittag automatisch um 17:00 Uhr spielt? Schnapp dir deinen Lieblings-Songclip und wenn er bei gespeichert ist /home/myuser/friday_song.mp4 Sie würden den Crontab-Job hinzufügen:
0 17 * * 5 aplay /home/myuser/friday_song.mp4
Beispiel: Sicherungsdateien mit Rsync
Eine der vielen hervorragenden Anwendungen von crontab ist die Möglichkeit, Ihre Dateien automatisch auf einem Remote-Server zu sichern. Reduzieren Sie damit erheblich das Risiko, jemals wieder wichtige Daten zu verlieren ausgezeichnetes rsync Tutorial.
Beispiel: Überprüfen Sie, ob Websites online sind
Vielleicht möchten Sie alle fünf Minuten automatisch überprüfen, ob verschiedene Websites online sind oder nicht, und per E-Mail benachrichtigt werden, wenn eine nicht verfügbar ist. Hier ist ein hübsches kleines PHP-Skript, das genau das tut.
php
// E-Mail-Adresse zur Benachrichtigung über heruntergefahrene Websites
$ email = '[email protected]';
// Definiere URLs zur Überprüfung
$ urls = [< br /> ' https://apexpl.io',
'https://google.com',
'https://some-junk-site-that-will-hopefully-never-exist.com'
];
// URLs durchgehen
$ down = [];
foreach ($ urls als $ url) {
// URL überprüfen
$ status = check_url ($ url);
if ($ status! = 200) {
$ down [] = $ url;
}
}
// E-Mail senden, wenn Websites nicht verfügbar sind
if (count ($ down)> 0) {
mail ($ E-Mail "Dringend - Sites down!", "Ihr Bot hat die folgenden Sites erkannt Derzeit nicht verfügbar:
". implode ("
", $ down));
}
// Beenden
Beenden (0);
/ **
* URL überprüfen < br /> * /
Funktion check_url (Zeichenfolge $ url): int
{
// Über cURL senden
$ ch = curl_init ();
curl_setopt ($ ch, CURLOPT_URL, $ url);
curl_setopt ($ ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ ch, CURLOPT_FOLLOWLOCATION, true);
$ response = curl_exec ($ ch);
// Status abrufen und Verbindung schließen
$ status = curl_getinfo ($ ch, CURLINFO_HTTP_CODE);
curl_close ($ ch);
// Return
return $ status;
}
code> pre> Ändern Sie einfach die E-Mail-Adresse und die gewünschten URLs, um sie oben in der Datei zu überprüfen und zu speichern es irgendwo wie /home/myuser/check_sites.php strong>. Fügen Sie den crontab-Job hinzu, damit dieses Skript alle fünf Minuten ausgeführt wird und Sie per E-Mail über ausgefallene Websites benachrichtigt werden: p> * / 5 * * * * / usr / bin / php /home/myuser/check_sites.php> / dev / null 2> & 1 code> pre> automatisiere dein Leben! h2>
Mit diesem Artikel haben Sie Ich werde hoffentlich die Automatisierungsleistung von crontab verstanden haben und wissen, wie es verwendet werden kann, um viele der alltäglichen und sich wiederholenden Aufgaben in Ihrem zu automatisieren Leben. p>
Sie haben erfahren, was Crontab ist, über die Crontab-Datei, wie Crontab-Jobs formatiert werden und einige Beispiele aus der Praxis, wie sie verwendet werden können. p>