Ошибка задания Cron "не удалось открыть входной файл"

Я потратил целый день на поиск решения этой конкретной ситуации (на переполнение стека и Googs), поэтому я прошу прощения, если это уже переполнение стека.

Я пытаюсь настроить довольно простое задание cron в AWS через командную строку:

* * * * * /usr/bin/php /opt/app/current/record_user_login.php

задание cron успешно срабатывает и может коснуться файла, о котором идет речь (он попадает в правильную среду.) Тем не менее, я продолжаю получать ошибка:

"Could not open input file"

Я:

  • права доступа chmod на файл 777
  • изменен сценарий, чтобы просто эхо "Hello world"
  • пробовал инициировать cronjob как пользователь root
  • chmod'D сам файл crontab в 777

ни одно из этих решений не похоже на работу. По неизвестной причине я не могу редактировать rsyslog.conf, чтобы включить cronlog, поэтому у меня нет никаких данных, что.

содержание record_user_login являются:

<?
    include("connect_to_mysql.php");

    //Logged in in 1 week
    $current_date = date('Y-m-j H:i:s', strtotime("-1 weeks"));

    $query = "SELECT DISTINCT user_id FROM users_login_history WHERE sign_in_time > '$current_date'";
    $result = mysql_query($query) or die(mysql_error());
    $i = 0;
    while($row = mysql_fetch_array($result)){
        $i++;
    }
    $query = "INSERT INTO sqm_data (feature, action) VALUES ('user login', $i)";
    if(!mysql_query($query)) {
        die('Error: ' . mysql_error());
    }
?>

какие идеи?

3 ответов


это абсурдно поздно для игры, но я нашел решение для этого. То, что происходило, было:--1-->

Я изначально набрал команды cron в блокноте Windows и загрузил их. По-видимому, то, что происходило, было возвращением кареты ("/r", IIRC), было подключено, без моего ведома (и vim, когда я просматривал файл из putty.) Друг удалил эти возвраты каретки методом, который я не помню/не слишком хорошо следовал, к сожалению, но после того, как были удалены возвраты, все сработало.


попробуйте это:

* * * * * cd /var/www/html/cron/; /usr/bin/php /var/www/html/cron/filename.php -q -f

* * * * * /usr/bin/php -q /opt/app/current/record_user_login.php

попробуйте добавить флаг-q. Кроме того, было бы полезно, если вы еще этого не сделали, зарегистрировать свой вывод.

вы уверены, что ваш путь к PHP правильный? Я видел примеры, которые просто делают это:

* * * * * php -q /opt/app/current/record_user_login.php

возможно, вы захотите попробовать.