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

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.