Автор Гілка: cron не хоче запускати башовий скріпт ((  (Прочитано 1822 раз)

Відсутній skela

  • Новачок
  • *
  • дописів: 36
  • Карма: +0/-0
  • Хай!
Виникла досить цікава проблема.
Ніколи не було проблем з кроном, а ось тут виникла  :-/

Написав parset для access.log squida. Потрібно запустити башовский скріпт кожного дня в ночі для обробки лога

в кроні прописав

Цитата

0  0  *  *  * root  /usr/local/squid-log/squid_log_clear.sh

В лозі крона, еррорів не викидає пише. Що скріпт запустився. Але скріпт не виконується ((((

Ось сам скріпт:


LOGFILE=/usr/local/squid-log/log/stat.log
SQUIDLOG=/usr/local/squid/logs/access.log
SQUIDRUN=/. 1/squid_log/
MYDATE=`date +%d/%m/%Y `
PATH=$PATH: /usr/sbin: /usr/local/squid-log


  squid stop || echo "${MYDATE} squid: ...... stop error" >> ${LOGFILE} 2>&1

  if [ -r ${SQUIDLOG}   ]; then

   cp -f ${SQUIDLOG} ${SQUIDRUN}

   . /squid-log-underground.pl

   echo "${MYDATE} parents ..... ok" >> ${LOGFILE} 2>&1

   cat 0 > ${SQUIDLOG}

    squid start || echo "${MYDATE} squid: ...... start error" >> ${LOGFILE} 2>&1

   else

      echo "${MYDATE} script error"  >> ${LOGFILE}

    squid start  || echo "${MYDATE} squid: ...... start error" >> ${LOGFILE} 2>&1


      fi

    exit


ОС FreeBSD 6.1

чому скріпт кроном не виконується. Хоча повністю робочий ????

На перед вдячний

Відсутній cadca

  • Письменник
  • *****
  • дописів: 955
  • Карма: +0/-0
  • free like beer
...в кроні прописав

Цитата

0  0  *  *  * root  /usr/local/squid-log/squid_log_clear.sh

В лозі крона, еррорів не викидає пише. Що скріпт запустився. Але скріпт не виконується (((( ...
Виконуватися то виконується, але є велика підозра, що не скрипт ;), а "root  /usr/local/squid-log/squid_log_clear.sh":
MIN HOUR DAY MONTH DAYOFWEEK   COMMANDКронтаб ви ж з-під рута редагували? (Скрипт з правами власника кронтабу виконуватись буде)

P.S.: питання явно не в тій вітці задане ::)
Ubuntu 20.04/18.04; CentOS 7.x

Praporshic

  • Гість
Дуже корисно дивитись у поштову скриньку користувача, який отримує замість root`а пошту (або у скриньку самого рута). Там має бути STDOUT виконання цього завдання.

Відсутній skela

  • Новачок
  • *
  • дописів: 36
  • Карма: +0/-0
  • Хай!
запис в крон в фрі

#minute hour    mday    month   wday    who     command

Відсутній cadca

  • Письменник
  • *****
  • дописів: 955
  • Карма: +0/-0
  • free like beer
запис в крон в фрі

#minute hour    mday    month   wday    who     command
Хм, так ви в системний /etc/crontab свій скрипт прописали :-?, тоді підозри тільки на обмеження безпеки. Спробуйте ваш скрипт прописати у власний кронтаб рута (не вказуючи "who") через crontab -e.
Ubuntu 20.04/18.04; CentOS 7.x

Praporshic

  • Гість
Є ще один момент. У FreeBSD, для нормального виконання скриптів через крон, треба використовувати повні шляхи, або вказувати PATH. Швидше за все він не може знайти той саме squid-log-underground.pl.

Відсутній skela

  • Новачок
  • *
  • дописів: 36
  • Карма: +0/-0
  • Хай!
Цитата
Хм, так ви в системний /etc/crontab свій скрипт прописали , тоді підозри тільки на обмеження безпеки. Спробуйте ваш скрипт прописати у власний кронтаб рута (не вказуючи "who") через crontab -e.

Ні прописав я свій скріпт якраз crontab -e )))

Але дійсно вказав who root.

Зняв рута і все запрацювало ))