Wie richte ich einen Cron-Job ein, um jede Stunde eine ausführbare Datei auszuführen?

Lesezeit: 3 Minuten

Benutzeravatar von Anonymous
Anonym

Ich muss einen Cron-Job einrichten, der einmal pro Stunde eine mit gcc kompilierte ausführbare Datei ausführt.

Ich habe mich als root angemeldet und eingegeben crontab -e

Dann habe ich folgendes eingegeben und die Datei gespeichert.

0 * * * *  /path_to_executable

Allerdings funktioniert der Cronjob nicht.

Das sehe ich beim Tippen /...path_to_executable Ich erhalte einen Segmentierungsfehler. Ich kann die ausführbare Datei nur aus dem Ordner ausführen, in dem sie sich befindet. Gibt es eine Möglichkeit, dieses Problem zu lösen?

  • Das ist ein schlechter Titel. Sie wissen, wie man den Cron-Job einrichtet; Sie möchten wissen, wie der Befehl funktioniert.

    – David Thornley

    20. August 2010 um 19:51 Uhr

  • gehört auf superuser.com (nicht direkt mit Programmierung verbunden)

    – Philipp

    20. August 2010 um 19:54 Uhr

  • Falscher Titel, aber so habe ich die Lösung gefunden.

    – Roman Holzner

    8. April 2014 um 21:17 Uhr

  • Ihre ausführbare Datei ist wahrscheinlich gestartet. Ich empfehle die Verwendung Syslog(3) darin (und machen Sie zumindest beim Start eine Protokollnachricht, um sicherzugehen, dass es gestartet wurde).

    – Basile Starynkevitch

    27. Dezember 2016 um 9:42 Uhr

Benutzeravatar von joast
joast

0 * * * * cd folder_containing_exe && ./exe_name

sollte funktionieren, es sei denn, es muss etwas anderes eingerichtet werden, damit das Programm ausgeführt werden kann.

  • Verwenden Sie && anstelle von ;, da sonst interessante Dinge passieren können (insbesondere bei Verwendung mit rm)

    – Reaktormönch

    13. August 2010 um 16:33 Uhr

  • Sie haben Recht. && ist viel besser, wenn die Möglichkeit besteht, dass das CD-Ziel nicht existiert (zum Beispiel, wenn sich das Verzeichnis auf einem NFS-Server befindet, der zufällig heruntergefahren ist).

    – Joast

    13. August 2010 um 16:36 Uhr

  • Rette meinen Tag! Vielen Dank!

    – Chiaki

    20. August 2019 um 9:14 Uhr

  • Beachten Sie, dass Sie afaik auch einen absoluten Pfad (dh vom Stammverzeichnis) benötigen

    – Dreviko

    25. April 2020 um 1:11 Uhr

Benutzeravatar von David Thornley
David Thornley

Die Lösung, um dies zu lösen, besteht darin, herauszufinden, warum Sie den Segmentierungsfehler erhalten, und diesen zu beheben.

Sie können auch verwenden @hourly Augenblick von 0 * * * *

  • Neugierig auf diese Lösung, in welcher Minute läuft sie, impliziert @hourly bei 0?

    – ojblass

    6. Oktober 2017 um 20:03 Uhr

  • @ojblass @hourly ist ein exaktes Synonym für 0 * * * *es gibt keinen Unterschied.

    – Marek Skiba

    23. Februar 2018 um 10:51 Uhr

Benutzeravatar von James Gentes
Jakob Gentes

Wenn Sie Ubuntu verwenden, können Sie ein Shell-Skript in einem dieser Verzeichnisse ablegen: /etc/cron.daily, /etc/cron.hourly, /etc/cron.monthly oder /etc/cron.weekly.

Weitere Einzelheiten finden Sie in diesem Beitrag: https://askubuntu.com/questions/2368/how-do-i-set-up-a-cron-job

Benutzeravatar von Jayan
Jayan

Meinten Sie, dass die ausführbare Datei nicht ausgeführt werden kann, wenn sie von einem anderen Verzeichnis aus aufgerufen wird? Dies ist eher ein Fehler in der ausführbaren Datei. Ein möglicher Grund könnte sein, dass die ausführbare Datei einige gemeinsam genutzte Bibliotheken aus dem installierten Ordner benötigt. Sie können die Umgebungsvariable überprüfen LD_LIBRARY_PATH

Benutzeravatar von Suvarna Pattayil
Suvarna Pattayil

Da konnte ich das nicht ausführen C ausführbar Auf diese Weise schrieb ich eine einfache shell script das macht folgendes

cd /..path_to_shell_script
./c_executable_name

In der Liste der Cron-Jobs rufe ich das Shell-Skript auf.

Gerhards Benutzeravatar
Gerhard

verwenden

path_to_exe >> log_file

Um die Ausgabe Ihres Befehls anzuzeigen, können auch Fehler mit umgeleitet werden

path_to_exe &> log_file

auch Sie können verwenden

crontab -l

um zu überprüfen, ob Ihre Änderungen gespeichert wurden.

  • crontab -l zeigt den Cron-Job, wenn ich mich als root anmelde. Ich habe die log_file ausprobiert, aber sie ist leer.

    – Anonym

    13. August 2010 um 15:59 Uhr

1421380cookie-checkWie richte ich einen Cron-Job ein, um jede Stunde eine ausführbare Datei auszuführen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy