Jump to content
Калькуляторы

Перестал работать скрипт из планировщика на Debian 7

Есть сервер на 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 не работает.

Share this post


Link to post
Share on other sites

Задайте полный путь для скрипта. "СRON" зачастую (скорее всего специально) не знает списка каталогов где обычно можно искать исполняемые файлы.

А что для него есть "текущий каталог" "./" - вообще не представляю

Share this post


Link to post
Share on other sites

но теперь почему-то перестал, причину найти не могу. При этом в каталоге создается пустой файл output.log

У Вас случайно не висит куча процессов

/usr/bin/php -q registry.php
?

 

Есть ли место в /dir1 для записи output.log?

Share this post


Link to post
Share on other sites

Задайте полный путь для скрипта.

Так для того я и указываю cd.

 

У Вас случайно не висит куча процессов

Нет.

 

Есть ли место в /dir1 для записи output.log?

Оно, в разделе нет свободного места.

Спасибо.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this