我无法设置cron job

时间:2016-01-02 16:42:52

标签: php linux ubuntu cron

我试图在" crontab -e" 中设置一个cron作业:

* * * * * /usr/bin/php /home/vagrant/Code/xxx/testCron.php

testCron.php 文件创建另一个文件,它只包含这个:

<?php
$f = fopen('cron-' . date('H-i-s') . '.txt', 'w+');
fwrite($f, 'asdf');
fclose($f);

但文件 cron -.... txt 不会出现。可能有问题吗?

我做了/检查了这个:

  • Cron正在工作。我用sudo&#34; service cron start&#34;检查了这个。 commad。
  • $ PATH包含&#34; /home/vagrant/.composer/vendor/bin:/ usr / local / sbin:/ usr / local / bin:/ usr / sbin:/ usr / bin: / sbin目录:/ bin中:在/ usr /游戏:在/ usr /本地/游戏和#34;

2 个答案:

答案 0 :(得分:0)

您可以检查来自cron作业的日志以识别错误。

根据您的系统,cron日志可以位于不同的位置。找到包含cron日志的文件:

while (reader.Read())
            {
                if (reader.Name.Equals("Group"))
                {
                    name = reader.GetAttribute("Name");
                    // Now I need to reach the specific "MachineName" attribute of the "Client" sub-element but don't know how.
                }
            }
            reader.Close();

然后查看有问题的日志的内容,例如通过grep -ic cron /var/log/* | grep -v :0 ./auth.log:1246 ./auth.log.1:3054 ./bootstrap.log:3 ./syslog:187 ./syslog.1:220

cat

或查看该文件中最新的testCron.php:

cat /var/log/syslog

答案 1 :(得分:0)

您的脚本会创建没有路径的cron-...txt文件;因此它出现在当前目录中 - 如果它具有写入权限。 Cronjobs将有一个不同的开始目录 - 通常是用户的家,但可能在任何地方,具体取决于配置。

尝试以下方法之一:

  • 更改脚本以在特定目录中创建文件
  • 执行chdir()以设置特定的当前工作目录
  • 在crontab配置中设置特定目录
  • 查找用户主目录中的文件
  • 确保用户对您要放置文件的目录具有写入权限