将 Cron 作业存储在哪里,它们会一直运行吗?

Posted

技术标签:

【中文标题】将 Cron 作业存储在哪里,它们会一直运行吗?【英文标题】:Where to store Cron Jobs, and will they always run? 【发布时间】:2012-01-24 20:33:08 【问题描述】:

我最近想过使用 cron 作业。在我的站点中,我的设置中有cssjsimages 文件夹,这不是很相关,但可能需要。

我知道如何执行 cron 任务,但不确定将它放在我的文件中的哪个位置,以便它始终每天运行。

那么我应该把cron作业文件放在哪里,我应该为它创建一个新文件夹,文件扩展名应该是什么?

【问题讨论】:

【参考方案1】:

通过SSH登录你的系统,然后输入,

crontab -e

如果这是您第一次编辑,它可能会询问您想使用什么编辑器。 然后开始编辑。

*/1 * * * * /var/www/mysite/public/cron/script.php

将每分钟运行一次 script.php。

【讨论】:

Cpanel 有自己的 cron 接口。 对不起,你应该提到你需要看看如何在 cpanel 中做到这一点。您应该只检查 cpanel 常见问题解答。这应该是显而易见的。【参考方案2】:

我在 Mythbuntu 系统上安装的 cron 将其每日 cron 脚本保存在 /etc/cron.daily/

文件扩展名在 *nix 上无关紧要。该文件只需要具有可执行权限(并且应该在顶部有一个 shebang 行来说明它应该运行什么程序)。

【讨论】:

这个总是会运行吗?我应该使用什么文件扩展名? 阅读答案! “文件扩展名无关紧要”,因此请使用您喜欢的任何(或不使用)扩展名。【参考方案3】:

任何地方,但我建议在 Web 根目录之外。文件扩展名以匹配文件类型

【讨论】:

【参考方案4】:

不管你把它放在哪里,只要你用它们的绝对路径调用所有包含的文件以避免混淆。我遇到过

include '../../start.php';

使用 php 命令运行时出现问题(我认为是 usr/bin/php)。可能是因为它是从 php 运行命令位于 Apache 服务器上的不同文件夹中运行它的。因此,当包含文件时,我会使用 $_SERVER['DOCUMENT_ROOT'] 作为包含文件的参考点。

您也可以随时使用 wget 命令来运行它,就好像您在自己的浏览器中运行它一样。这是我使用的:

wgethttp://www.mydomain.ca/cron/cron_whatever.php

可以使用 cPanel cron 选项设置时间,或者您也可以将其写出来。 并且始终打开电子邮件通知,以确保您得到写出的结果,看看是否有任何问题。

【讨论】:

linux.about.com/od/commands/l/blcmdl1_wget.htm 显示 WGET 选项。【参考方案5】:

您不直接编辑cron,而是运行crontab -e,这将有效地保存允许您编辑并将其保存到系统区域中。

【讨论】:

我认为他指的是他通过 cron 作业调用的文件\应用程序。但话说回来,也许你是对的。【参考方案6】:

您可以像之前所说的那样使用 SSH,但是有一些托管服务提供商使用 cPanel 并允许您通过易于使用的基于 Web 的界面轻松创建这些 cron 作业,您还可以轻松地为和他们一起跑。

【讨论】:

以上是关于将 Cron 作业存储在哪里,它们会一直运行吗?的主要内容,如果未能解决你的问题,请参考以下文章

Centos / Red Hat 服务器中 Cron 作业的退出代码存储在哪里?

Ubuntu 上的 dotnet 运行时安装在哪里?

cron 运行的 shell 脚本中的 echo 语句 [重复]

Drupal 7 hook_cron - 放在哪里

仅在特定时间每分钟运行一次 cron 作业?

Cron 作业每 x 周和特定日期运行一次 [关闭]