web-dev-qa-db-de.com

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

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 crontab -e

Dann habe ich folgendes eingegeben und die Datei gespeichert.

0 * * * *  /path_to_executable

Der Cron-Job funktioniert jedoch nicht.

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

83
Anonymous
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.

142
joast

Die Lösung besteht darin, herauszufinden, warum der Segmentierungsfehler auftritt, und diesen zu beheben.

8
David Thornley

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

4
Marek Skiba

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

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

3
James Gentes

Meinten Sie, dass die ausführbare Datei nicht ausgeführt werden kann, wenn sie aus einem anderen Verzeichnis 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 freigegebene Bibliotheken aus dem installierten Ordner erfordert. Sie können die Umgebungsvariable LD_LIBRARY_PATH

2
Jayan

Da ich die ausführbare Datei C so nicht ausführen konnte, schrieb ich eine einfache Shell script das macht folgendes

cd /..path_to_Shell_script
./c_executable_name

In der Liste der Cronjobs rufe ich das Shell-Skript auf.

0
Anonymous

verwenden

path_to_exe >> log_file

um die Ausgabe Ihres Befehls zu sehen, können auch Fehler mit umgeleitet werden

path_to_exe &> log_file

auch du kannst verwenden

crontab -l

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

0
jartieda