Ошибка задания 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
возможно, вы захотите попробовать.