alibek Posted May 17, 2017 Posted May 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 не работает. Вставить ник Quote
Tosha Posted May 17, 2017 Posted May 17, 2017 Задайте полный путь для скрипта. "СRON" зачастую (скорее всего специально) не знает списка каталогов где обычно можно искать исполняемые файлы. А что для него есть "текущий каталог" "./" - вообще не представляю Вставить ник Quote
Tau Posted May 17, 2017 Posted May 17, 2017 но теперь почему-то перестал, причину найти не могу. При этом в каталоге создается пустой файл output.log У Вас случайно не висит куча процессов /usr/bin/php -q registry.php? Есть ли место в /dir1 для записи output.log? Вставить ник Quote
alibek Posted May 17, 2017 Author Posted May 17, 2017 Задайте полный путь для скрипта. Так для того я и указываю cd. У Вас случайно не висит куча процессов Нет. Есть ли место в /dir1 для записи output.log? Оно, в разделе нет свободного места. Спасибо. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.