alibek Опубликовано 17 мая, 2017 Есть сервер на Debian 7.11. На этом сервере в /etc/cron.d/ добавлен вызов примерно такой команды: cd /dir1 && ./proc1.sh >> output.log 2>&1 под пользователем user1. Скрипт proc1.sh в свою очередь вызывает PHP-скрипт: #!/bin/sh echo "Check mail, `date`..." cd /dir2 /usr/bin/php -q registry.php Долгое время скрипт работал нормально, но теперь почему-то перестал, причину найти не могу. При этом в каталоге создается пустой файл output.log (нулевого размера). В системных логах (/var/log/messages.log и /var/log/daemon.log) ошибок нет, в /etc/log/cron.log я вижу запуск скрипта. Если запускать скрипт proc1.sh вручную (хоть под user1, хоть под root), он успешно выполняется. Нет предположений, в чем проблема? Еще одна странность. Сделал такой тестовый скрипт для запуска: #!/bin/sh ORACLE_BASE=/opt/oracle ORACLE_HOME=/opt/oracle/instantclient10 ORACLE_SID=billing ORACLE_TERM=xterm LD_LIBRARY_PATH=/opt/oracle/instantclient10 LANG=en_US.UTF-8 NLS_LANG=RUSSIAN_RUSSIA.UTF8 NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS' NLS_NUMERIC_CHARACTERS=., cd /dir1 ./proc1.sh >> output.log 2>&1 Если этот скрипт запускать из под root, то proc1 работает, результат работы пишется в output.log. Если из этого скрипта убрать перенаправление в output.log, то при запуске из под user1 он работает, результат выводится на экран. Но если запускать его из под user1 с перенаправлением в output.log, то он не работает, создается пустой файл output.log. Даже если на этот файл назначить права 666, все равно из под user1 не работает. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Tosha Опубликовано 17 мая, 2017 Задайте полный путь для скрипта. "СRON" зачастую (скорее всего специально) не знает списка каталогов где обычно можно искать исполняемые файлы. А что для него есть "текущий каталог" "./" - вообще не представляю Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Tau Опубликовано 17 мая, 2017 но теперь почему-то перестал, причину найти не могу. При этом в каталоге создается пустой файл output.log У Вас случайно не висит куча процессов /usr/bin/php -q registry.php? Есть ли место в /dir1 для записи output.log? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 17 мая, 2017 Задайте полный путь для скрипта. Так для того я и указываю cd. У Вас случайно не висит куча процессов Нет. Есть ли место в /dir1 для записи output.log? Оно, в разделе нет свободного места. Спасибо. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...