Ich habe gehört, Crontab ist eine gute Wahl, aber wie schreibe ich die Zeile und wo stelle ich sie auf den Server?
144
Hier ist ein gutes Tutorial darüber, was Crontab ist und wie man es unter Ubuntu verwendet. Ihre Crontab-Linie sieht ungefähr so aus:
00 00 * * * ruby path/to/your/script.rb
( 00 00
Zeigt Mitternacht an - 0 Minuten und 0 Stunden - und das *
s bedeutet jeden Tag eines jeden Monats.)
Syntax: mm hh dd mt wd Befehl mm Minute 0-59 hh Stunde 0-23 dd Tag des Monats 1-31 mt Monat 1-12 wd Wochentag 0-7 (Sonntag = 0 oder 7) Befehl: Was möchten Sie ausführen? Alle numerischen Werte können durch * ersetzt werden, was alle bedeutet
/etc/crontab
(unter Ubuntu) zulässig , aber wenn Sie ausführencrontab -e
, bearbeiten Sie eine benutzerspezifische Crontab, die diese Spalte nicht zulässt. IIRC Ubuntu rät vom/etc/crontab
manuellen Beenden ab, da es möglicherweise überschrieben wird. Siehe hier: stackoverflow.com/questions/8475694/…sudo crotab -u root -e
von der Manpage
Es ist gut zu beachten, dass spezielle "Spitznamen" verwendet werden können (dokumentiert in der Manpage), insbesondere "@reboot", für das es keine Alternative zu Uhrzeit und Datum gibt.
Sie können diesen Trick auch verwenden, um Ihren Cron-Job mehrmals pro Minute auszuführen.
Um einen Cron-Job hinzuzufügen, können Sie eines von drei Dingen ausführen:
Fügen Sie der Crontab eines Benutzers einen Befehl hinzu, wie oben gezeigt (und über die Crontab, Abschnitt 5, Manpage).
crontab -e -u <username>
crontab -e
EDITOR
Umgebungsvariablen festlegenenv EDITOR=nano crontab -e -u <username>
export EDITOR=vim
crontab -e
chmod a+x <file>
Erstellen Sie ein Skript / Programm als Cron-Job und fügen Sie es den Anacron-
/etc/cron.*ly
Verzeichnissen des Systems hinzuchmod a+x /etc/cron.daily/script_runs_daily.sh
- mach es ausführbarman anacron
chmod a+x <file>
/etc/crontab
oder/etc/anacrontab
zu einem festgelegten Zeitpunkt ausgeführt/etc/anacrontab
und cron.hourly in/etc/cron.d/0hourly
Oder Sie können System-Crontables in erstellen
/etc/cron.d
./etc/cron.d
müssen nicht ausführbar sein.someuser
wird und dessen Verwendung/bin/bash
als Shell erzwungen wird.quelle
Manchmal müssen Sie PATH und GEM_PATH mit crontab mit rvm angeben.
So was:
quelle
Kurzanleitung zum Einrichten eines Cron-Jobs
Erstellen Sie eine neue Textdatei, Beispiel: mycronjobs.txt
Speichern Sie für jeden täglichen Job (00:00, 03:45) die Einteilungen in mycronjobs.txt
Senden Sie die Jobs an cron (jedes Mal, wenn Sie dies ausführen, löscht cron die gespeicherten Daten und aktualisiert sie mit den neuen Informationen in mycronjobs.txt )
Zusätzliche nützliche Informationen
Aktuelle Cron-Jobs anzeigen
Entfernen Sie alle Cron-Jobs
quelle
Sie können das Shell-Skript auf zwei Arten ausführen, entweder mithilfe eines Cron-Jobs oder durch Schreiben eines Shell-Skripts
Nehmen wir an, Ihr Skriptname lautet "yourscript.sh".
Überprüfen Sie zuerst die Benutzerberechtigung des Skripts. Verwenden Sie den folgenden Befehl, um die Benutzerberechtigung des Skripts zu überprüfen
ll script.sh
Wenn sich das Skript im Stammverzeichnis befindet, verwenden Sie den folgenden Befehl
sudo crontab -e
Zweitens, wenn das Skript den Benutzer "ubuntu" enthält, verwenden Sie den folgenden Befehl
crontab -e
Fügen Sie die folgende Zeile in Ihre Crontab ein: -
55 23 * * * /path/to/yourscript.sh
Eine andere Möglichkeit besteht darin, ein Skript zu schreiben und es im Hintergrund auszuführen
Hier ist das Skript, in das Sie Ihren Skriptnamen eingeben müssen (z. B.: - youscript.sh), das jeden Tag um 23:55 Uhr ausgeführt wird
#!/bin/bash while true do /home/modassir/yourscript.sh sleep 1d done
Speichern Sie es in einer Datei (nennen wir es "every-day.sh")
Schlaf 1d - bedeutet, dass es einen Tag wartet und dann wieder läuft.
Geben Sie jetzt die Erlaubnis für Ihr Skript. Verwenden Sie den folgenden Befehl: -
chmod + x every-day.sh
Führen Sie dieses Shell-Skript jetzt im Hintergrund mit "nohup" aus. Dadurch wird das Skript auch nach dem Abmelden von Ihrer Sitzung weiter ausgeführt.
Verwenden Sie den folgenden Befehl, um das Skript auszuführen.
nohup ./every-day.sh &
Hinweis: - Um "yourscript.sh" jeden Tag um 23:55 Uhr auszuführen, müssen Sie das Skript "every-day.sh" genau um 23:55 Uhr ausführen.
quelle
Fügen Sie diesen Satz in eine Crontab-Datei ein: 0 0 * * * / usr / local / bin / python /opt/ByAccount.py> /var/log/cron.log 2> & 1
quelle