我需要帮助使cronjob在Linux(Debian)中正常运行。 (这是我的第一个)。
我需要一个文件每小时“运行”一次的次数。 我得到了这个:
没有根的crontab – 使用一个空的
编辑的crontab文件:0 2-21 * * * /www/file.php
crontab:安装新的crontab
这是为了使cronjob运行在凌晨2点(或200小时),每小时运行直到2100小时。 我检查了数据库,看看该文件是否在2:10做了它的事情,没有任何改变,所以显然没有运行。
我对Linux相当陌生,所以可能有办法看看发生了什么,但是我真的很想知道在我进入诊断之前我是否正确地编写了Cronjob指令。
你的crontab对我来说看起来完全没问题。
你确定你有适当的执行位设置和适当的shebang,以便根可以执行文件/www/file.php吗?
关于这个:
42 3-22 * * * /var/www/apache2-default/getUserDetails.php?friend=14522828
你不能把? 那里。 它会考虑? 以及作为文件系统文件名的一部分(其正在寻找/var/www/apache2-default的文件getUserDetails.php?friend=14522828 )。 你可以做的是:
42 3-22 * * * /usr/bin/php-cgi /var/www/apache2-default/getUserDetails.php friend=14522828
(假设php-cgi可执行文件位于/ usr / bin中,则在其他位置安装php时会相应地更改)
或者,您可以编辑getUserDetails.php并在文件的最顶端有以下行:
#!/usr/bin/php-cgi <?php [your code goes here] ...
然后确保getUserDetails.php可以由root执行(通过ls -l进行检查,通过chmod进行分配),然后在cron中执行以下计划:
42 3-22 * * * /var/www/apache2-default/getUserDetails.php friend=14522828
之后,您可以监视/ var / log / cron中是否正在运行crond的命令。 然后你可以检查根目录的邮件( mail命令)是否存在程序输出或遇到的错误。
另一方面,如果你在你的crontab中是真的有
0 2-21 * * * /www/file.php
然后我被遗弃了 该条目看起来不错,所以你需要确保你可以在命令行中手动运行文件(在shell中input/www/file.php )。 如果不可执行,则添加执行位。
之后,检查/ var / log / cron以及root用户的邮件,以查看正在执行的命令和错误。