Перейти к содержимому
Калькуляторы

Перестал работать скрипт из планировщика на 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 не работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

 

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

Нет.

 

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

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

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.