it-swarm.com.de

Crontab einmal täglich in Ubuntu 12.04

Ich habe einen VPS mit Ubuntu 12.04 eingerichtet und möchte jetzt einmal am Tag einen Cronjob ausführen.

Die Befehlszeile lautet wie folgt:

    mono /root/Folder/Aplication.exe

Ich habe im Internet gesucht und mich umgesehen, kann aber nicht verstehen, wie es geht. Ich möchte diesen Befehl zum Beispiel alle 24 Stunden um Mitternacht ausführen.

Vielen Dank im Voraus für das Lesen meiner Frage und natürlich für alle Antworten.

1
ManouHH

Da es einige komplementäre Unterschiede zwischen @ Guss und meiner Antwort gibt, lasse ich es

Hier ist eine Illustration zu cronjobs setup ( source ):

* * * * * command to be executed
- - - - -
| | | | |
| | | | +----- day of week (0 - 6) (Sunday=0)
| | | +------- month (1 - 12)
| | +--------- day of month (1 - 31)
| +----------- hour (0 - 23)
+------------- min (0 - 59)
  • Wenn Sie jeden Tag um 0:15 Uhr einen Auftrag von Ihrem $ USER ausführen möchten, müssen Sie die Datei crontab des Benutzers bearbeiten (die sich in /var/spool/cron/crontabs/<user_name> Befindet). Sie können dies mit dem Befehl crontab -e Tun. (Möglicherweise wird ein Dialogfeld angezeigt, in dem Sie den Standard-Terminal-Texteditor auswählen müssen.) Am Ende der Datei crontab fügen Sie folgende Zeile hinzu:

    15 0 * * * /usr/bin/mono /root/Folder/Aplication.exe > /var/log/mono.daily.log 2>&1
    
    • /usr/bin/mono Es wird empfohlen, den vollständigen Pfad zum Befehl in Cron zu verwenden. Um es zu finden, können Sie Sudo updatedb && Sudo whereis mono Verwenden.
    • > /var/log/mono.daily.log Dieser Teil leitet die Ausgabe in eine Protokolldatei um, falls Sie verfolgen möchten, was mit Ihrem cronjob passiert. Wenn Sie die Protokolldaten der letzten Tage behalten möchten, können Sie >> Anstelle von > Verwenden.
    • 2>&1 Dieser Teil fügt die Fehlermeldungen in die Protokolldatei ein.
  • Wenn Sie einen Job von root ausführen möchten, müssen Sie dessen crontab -Datei bearbeiten: Sudocrontab -e und füge die oben gezeigte Zeile hinzu.

  • Außerdem können Sie für tägliche Cronjobs eine ausführbare Datei im Ordner /etc/cron.daily Hinzufügen. Um ein Beispiel zu finden, checken Sie einige der vorhandenen Dateien in diesen Ordner ein.

1
pa4080

Sie führen geplante Jobs in Ubuntu (und anderen Linuxes) mit cron aus. Eine wichtige Sache, an die Sie sich bei Cron erinnern sollten, ist, dass es "Benutzer-Cron-Tabellen" und "System-Cron-Tabellen" gibt.

Wenn Ihre Anwendung im Kontext eines Benutzers ausgeführt werden soll, ist dies relativ einfach: Melden Sie sich als dieser Benutzer an und führen Sie crontab -e aus. Sie gelangen in einen Editor, in dem Sie die Cron-Tabelle manuell bearbeiten.

Unter einer Benutzer-Cron-Tabelle haben Sie 6 Felder:

<minute> <hour> <day-of-month> <month> <day-of-week> <command ...>

Die Felder sind durch Leerzeichen getrennt, mit Ausnahme von "command", die sich bis zum Ende der Zeile erstrecken (mit einigen Einschränkungen). Lesen Sie man 5 crontab für die blutigen Details.

Wenn Sie jeden Tag etwas ausführen möchten, möchten Sie möglicherweise eine Zeit auswählen und diese dann in die ersten beiden Felder programmieren. Alle anderen Felder bleiben als Sternchen (d. H. "Alles ist möglich"). Also der Ausdruck

1 2 * * * mono /root/Folder/Aplication.exe

Die Mono-Anwendung wird jeden Tag (jeden Tag im Monat, unabhängig vom Wochentag - dies sind die drei Sternchen) um 2:01 Uhr (die ersten beiden Felder) ausgeführt.

Nun, da ich sehe, dass Sie Ihre Anwendung unter /root installiert haben, gehe ich davon aus, dass Sie diese App möglicherweise als Systemanwendung ausführen möchten - was auch sinnvoller ist, wenn Sie einen Server in einem VPS einrichten. Eine System-Crontab ist einer Benutzer-Crontab sehr ähnlich, mit der Ausnahme, dass sie in einer Datei im Verzeichnis /etc gespeichert ist und ein zusätzliches Feld enthält, das angibt, unter welchem ​​Benutzer Sie sie ausführen möchten - wahrscheinlich wird dies root. Der Ausdruck könnte also so aussehen:

1 2 * * * root mono /root/Folder/Aplication.exe

und Sie möchten dies wahrscheinlich in eine neue Datei einfügen, die Sie unter /etc/cron.d/ - vielleicht /etc/cron.d/myapp erstellt haben (beachten Sie, dass es keine Erweiterung gibt - dies ist absichtlich). Unter /etc/ gibt es mehrere andere crontab-Dateien und -Verzeichnisse, die für Dinge wie tägliche Abläufe sehr nützlich sein können, wie z. B. /etc/cron.daily.

Anmerkungen

  1. Führen Sie Ubuntu 12.04 nicht aus - es ist super veraltet. Versuchen Sie es am besten am 16.04
  2. Checkout Crontab.Gur für alle Ihre Crontab-Ausdrucksanforderungen.
1
Guss