MySQL-Cron-Job
Das Hauptziel dieses Artikels besteht darin, zu demonstrieren, wie eine in MySQL geschriebene Abfrage geplant und nach einer festgelegten Zeit mithilfe von Cron-Jobs ausgeführt wird.
MySQL-Cron-Job
Beim Umgang mit großen Datenmengen kann eine bestimmte Aufgabe wiederholt werden.
Es kann alles sein und hängt vom Kontext der Aufgabe ab; Beispiele sind das Entfernen von Einträgen aus einer Tabelle nach einer bestimmten Anzahl oder das Erstellen von zeitgesteuerten Backups durch Speichern der Datenbankkopie auf dem lokalen Computer - die Möglichkeiten sind grenzenlos.
Betrachten Sie die folgende Tabelle:
+------+---------------+-------------+----------------------+------------+
| ID | Name | CountryCode | District | Population |
+------+---------------+-------------+----------------------+------------+
| 1 | Kabul | AFG | Kabol | 1780000 |
| 2 | Qandahar | AFG | Qandahar | 237500 |
| 3 | Herat | AFG | Herat | 186800 |
| 4 | Mazar-e-Sharif| AFG | Balkh | 127800 |
| 5 | Amsterdam | NLD | Noord-Holland | 731200 |
| . | . . . . . . . | . . . . . . | . . . . . . . . . . | . . . . . |
| . | . . . . . . . | . . . < OUTPUT REDACTED > . . . | . . . . . |
| . | . . . . . . . | . . . . . . | . . . . . . . . . . | . . . . . |
| 4075 | Khan Yunis | PSE | Khan Yunis | 123175 |
| 4076 | Hebron | PSE | Hebron | 119401 |
| 4077 | Jabaliya | PSE | North Gaza | 113901 |
| 4078 | Nablus | PSE | Nablus | 100231 |
| 4079 | Rafah | PSE | Rafah | 92020 |
+------+---------------+-------------+----------------------+------------+
Nehmen wir der Einfachheit halber an, dass die folgende Tabelle, in der Daten zu verschiedenen Städten auf der ganzen Welt gespeichert sind, regelmäßig aktualisiert wird; Die Situation erfordert, dass eine Tabellensicherung auf dem lokalen Computer vorhanden ist, bevor die Tabelle regelmäßig aktualisiert wird.
Um dies zu erreichen, können wir Cron-Jobs verwenden, um eine Abfrage auszuführen, die die Tabelle regelmäßig sichert. Mal sehen, wie wir das mit Cron-Jobs erreichen können.
Erstellen Sie eine Sicherungskopie der Tabelle
Bevor wir zum Zeitplanteil springen, erstellen wir die Abfrage, die es uns ermöglicht, diese bestimmte Tabelle zu sichern.
Betrachten Sie die folgende Abfrage:
mysql --user=[user] --password=[pass] --database=world --execute="SELECT * from world.city INTO OUTFILE 'D:\\a.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '' LINES TERMINATED BY '\n'"
Hier ist ein Überblick darüber, was in der Abfrage passiert:
mysql
– MySQL-Binärdatei, die ausgeführt werden muss, um auf die Datenbank zuzugreifen--user=[Benutzer
– Benutzername--password=[pass]
- Passwort--database=world
– Datenbankname für den Zugriff und die Verarbeitung, in diesem Fallworld
--execute="..."
– Die auszuführende Abfrage
5.1.Select * from world.city*
- Wählen Sie alle Einträge aus der Tabelleworld
aus, die im Datenbanknamenworld
vorhanden sind.
5.2.INTO OUTFILE 'PATH\.csv'
- Das Ergebnis der Abfrage in die genannte Datei schreiben.
5.3.FIELDS TERMINATED BY ','
- Beenden Sie jedes Feld mit einem Komma (für eine CSV-ähnliche Struktur)
5.4.UMGEBEN VON ''
- Schließen Sie jedes Feld mit''
ein
5.5.LINES TERMINATED BY '\n'
- Beendet jede Zeile mit einem Newline-Zeichen
Speichern Sie diese Abfrage an einem beliebigen Ort, vorzugsweise im Format .sh
.
Nachdem wir die Abfrage erstellt haben, können wir mit der Implementierung der Abfrage als geplante Aufgabe fortfahren.
Erstellen Sie den Cron-Job
Bevor wir die geplante Abfrage erstellen, sehen wir uns die allgemeine Syntax eines Cron-Jobs an.
Die allgemeine Syntax ist unten.
a b c d e /path/script result
a
,b
,c
,d
unde
geben die Uhrzeit, das Datum und die Wiederholung des Jobs an./path/script
gibt das auszuführende Skript anErgebnis
gibt an, wie der Benutzer über den Abschluss des Jobs benachrichtigt wird (Optional)
Zeitformat von Cronjobs
Werfen wir einen Blick auf das Zeitformat, dem Cron-Jobs folgen.
[a]
- Steht für eine Minute, kann zwischen 0 und 59 liegen[b]
- Steht für eine Stunde, kann zwischen 0 und 23 liegen[c]
- Steht für den Tag, kann zwischen 0 und 31 liegen[d]
- Steht für einen Monat, kann zwischen 0 (kein) und 12 (Dezember) liegen[e]
- Steht für den Wochentag, kann zwischen 0 (keine) und 7 (Sonntag) liegen
Richten Sie den Cron-Job ein
Um einen Cron-Job zu erstellen, öffnen Sie die Konfigurationsdatei crontab
mit Ihrem bevorzugten Texteditor.
Um die Konfigurationsdatei zu öffnen, schreiben Sie Folgendes in Ihr Terminal:
crontab -e
Und fügen Sie dort Ihren Job hinzu; In unserem Fall wäre die Syntax wie folgt:
0 7 * * * /tmp/back.sh
Der obige Cron-Job wird jeden Tag um 7 Uhr morgens ausgeführt, erstellt ein Backup der Stadttabelle und speichert es am gewünschten Ort.
Nachdem Sie den Cron-Job hinzugefügt haben, speichern Sie die Datei und Sie sind fertig!
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn