alibek Posted May 17, 2017 · Report post Есть сервер на 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 не работает. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Tosha Posted May 17, 2017 · Report post Задайте полный путь для скрипта. "СRON" зачастую (скорее всего специально) не знает списка каталогов где обычно можно искать исполняемые файлы. А что для него есть "текущий каталог" "./" - вообще не представляю Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Tau Posted May 17, 2017 · Report post но теперь почему-то перестал, причину найти не могу. При этом в каталоге создается пустой файл output.log У Вас случайно не висит куча процессов /usr/bin/php -q registry.php? Есть ли место в /dir1 для записи output.log? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted May 17, 2017 · Report post Задайте полный путь для скрипта. Так для того я и указываю cd. У Вас случайно не висит куча процессов Нет. Есть ли место в /dir1 для записи output.log? Оно, в разделе нет свободного места. Спасибо. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...