如何设置cron作业以每小时运行一次可执行文件?


92

我需要设置一个cron作业,每小时运行一次使用gcc编译的可执行文件。

我以root身份登录并输入 crontab -e

然后输入以下内容并保存文件。

0 * * * *  /path_to_executable

但是,cron作业不起作用。

我看到当我输入/...path_to_executable文字时会遇到细分错误。我只能从可执行文件所在的文件夹中执行该可执行文件。有什么办法可以解决此问题?


8
那是一个不好的标题。您知道如何设置cron作业;您想知道的是如何使命令起作用。
David Thornley,2010年

5
属于superuser.com(与编程没有直接关系)
Philipp 2010年

3
标题错误,但这是我找到解决方法的方式。
Roman Holzner 2014年

您的可执行文件可能已启动。我建议在其中使用syslog(3)(至少在启动时发出一条日志消息,以确保它已启动)。
Basile Starynkevitch

Answers:


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

除非有其他需要设置的程序才能运行,否则它应该可以正常工作。


11
使用&&而不是;,否则可能会发生有趣的事情(尤其是与rm一起使用时)
Reactormonk 2010年

4
你是对的。如果CD目标不存在(例如,如果目录在NFS服务器上而恰好关闭),则&&会更好。
2010年

拯救我的一天!谢谢!
Chiakie

请注意,您还需要一个绝对路径(即从根目录)afaik
drevicko

8

解决此问题的解决方案是找出出现分段错误的原因,然后加以解决。



2

您是说该可执行文件无法运行,如果从其他目录调用该可执行文件?这是可执行文件上的错误。可能的原因之一是可执行文件需要已安装文件夹中的某些共享库文件。您可以检查环境变量LD_LIBRARY_PATH



0

由于无法以这种方式运行C可执行文件,因此我编写了一个简单的代码shell script,可以执行以下操作

cd /..path_to_shell_script
./c_executable_name

在cron作业列表中,我称为shell脚本。


0

path_to_exe >> log_file

要查看命令的输出,还可以使用重定向错误

path_to_exe &> log_file

你也可以用

crontab -l

检查您的修改是否已保存。


当我以root用户登录时,crontab -l显示cron作业。我尝试了log_file,但它为空。
匿名
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.