Wie richte ich einen Cron-Job ein, um jede Stunde eine ausführbare Datei auszuführen?
Lesezeit: 3 Minuten
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
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
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
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.
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
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.
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
14213800cookie-checkWie richte ich einen Cron-Job ein, um jede Stunde eine ausführbare Datei auszuführen?yes
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