The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"FreeBSD && cron проблема!!!"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"FreeBSD && cron проблема!!!"
Сообщение от Atomic Искать по авторуВ закладки(??) on 15-Дек-04, 09:57  (MSK)
Есть скрипт который должен выполняеться Кроном, его содержимое:
#!/bin/sh
cp /usr/local/squid/logs/access.log /usr/local/count/traffic.log &&
>/usr/local/squid/logs/access.log &&
exec >> traf.log
awk '{print "INSERT INTO all_log (time_unix,time_mc,ip_from,rez_kod,count_b,metod,sait,who,ip_where,type_what) VALUES (from_unixtime("$1"),"$2",\""$3"\",\""$4"\","$5",\""$6"\",\""$7"\",\""$8"\",\""$9"\",\""$10"\");"};' < /usr/local/count/traffic.log | mysql -D traffic -u root --password=password &&
rm -f /var/count/traffic.log
Суть такова при запуске скрипта, копируется лог squid в временную директорию, затем сразу же очищается исходный лог, затем из скопированного лога командой awk вытягиваются переменные с нужными полями и добавляются в базу данных, затем скопированный файл лога удаляется!!!
При зупуске скрипта в ручную все проходит нормально!!!
Но при выполнении скрипта КРОНОМ, всепроходит нормально до строчки с удалением лога после его считывания awk и добавлением в базу данныз информации, соответственно и в базу данных ни чего не добавляется и временный файл лога не уничтожается!!!

Задание крона:
37      11      *       *       *       root    /usr/local/count/count.sh
Лог крона:
Dec 15 11:37:00 outpost /usr/sbin/cron[5561]: (root) CMD(   /usr/local/count/count.sh)
Директория в которой находится сам скрипт и временный файл лога:
drwxr-xr-x   2 root  wheel   512 Dec 15 11:42 .
drwxr-xr-x  20 root  wheel   512 Dec 15 11:33 ..
-rwxr-xr-x   1 root  wheel   463 Dec 15 11:42 count.sh
-rw-r--r--   1 root  wheel  3779 Dec 15 11:37 traffic.log

Плмлмгите кто чем может!!!

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "FreeBSD && cron проблема!!!"
Сообщение от Mr.Link emailИскать по авторуВ закладки(ok) on 15-Дек-04, 10:27  (MSK)
>Есть скрипт который должен выполняеться Кроном, его содержимое:
>#!/bin/sh
>cp /usr/local/squid/logs/access.log /usr/local/count/traffic.log &&
>>/usr/local/squid/logs/access.log &&
>exec >> traf.log
>awk '{print "INSERT INTO all_log (time_unix,time_mc,ip_from,rez_kod,count_b,metod,sait,who,ip_where,type_what) VALUES (from_unixtime("$1"),"$2",\""$3"\",\""$4"\","$5",\""$6"\",\""$7"\",\""$8"\",\""$9"\",\""$10"\");"};' < /usr/local/count/traffic.log | mysql
>-D traffic -u root --password=password &&
>rm -f /var/count/traffic.log
> Суть такова при запуске скрипта, копируется лог squid в временную директорию,
>затем сразу же очищается исходный лог, затем из скопированного лога командой
>awk вытягиваются переменные с нужными полями и добавляются в базу данных,
>затем скопированный файл лога удаляется!!!
>При зупуске скрипта в ручную все проходит нормально!!!
>Но при выполнении скрипта КРОНОМ, всепроходит нормально до строчки с удалением лога
>после его считывания awk и добавлением в базу данныз информации, соответственно
>и в базу данных ни чего не добавляется и временный файл
>лога не уничтожается!!!
>
>Задание крона:
>37      11      
>*       *    
>   *       root
>   /usr/local/count/count.sh
>Лог крона:
>Dec 15 11:37:00 outpost /usr/sbin/cron[5561]: (root) CMD(   /usr/local/count/count.sh)
>Директория в которой находится сам скрипт и временный файл лога:
>drwxr-xr-x   2 root  wheel   512 Dec 15
>11:42 .
>drwxr-xr-x  20 root  wheel   512 Dec 15 11:33
>..
>-rwxr-xr-x   1 root  wheel   463 Dec 15
>11:42 count.sh
>-rw-r--r--   1 root  wheel  3779 Dec 15 11:37
>traffic.log


Могу только сказать посмотри логи, добавь свой лог. Проверь права...
Расскажи что получилось - или лог покажи

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "FreeBSD && cron проблема!!!"
Сообщение от Danil emailИскать по авторуВ закладки(??) on 15-Дек-04, 10:37  (MSK)
У Крона некоторые переменные окружения свои! В том числе и PATH.

Посмотрите файл /etc/crontab, там в самом начале есть определение переменной PATH, где НЕТ по умолчанию ветки /usr/local/.., так что Крон может элементарно не знать, что такое mysql и где его искать!..

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "FreeBSD && cron проблема!!!"
Сообщение от lavr emailИскать по авторуВ закладки on 15-Дек-04, 10:52  (MSK)
>У Крона некоторые переменные окружения свои! В том числе и PATH.
>
>Посмотрите файл /etc/crontab, там в самом начале есть определение переменной PATH, где
>НЕТ по умолчанию ветки /usr/local/.., так что Крон может элементарно не
>знать, что такое mysql и где его искать!..

cron и не знает, и не только про mysql, а и про все остальное, да и скрипт
не совсем удачно написан по исполнению, что будет если какая-то команда
завершилась неудачно? Везде command && comand и нигде обработки на случай
неудачи.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "FreeBSD && cron проблема!!!"
Сообщение от Atomic Искать по авторуВ закладки(??) on 15-Дек-04, 14:38  (MSK)
>>У Крона некоторые переменные окружения свои! В том числе и PATH.
>>
>>Посмотрите файл /etc/crontab, там в самом начале есть определение переменной PATH, где
>>НЕТ по умолчанию ветки /usr/local/.., так что Крон может элементарно не
>>знать, что такое mysql и где его искать!..
>
>cron и не знает, и не только про mysql, а и про
>все остальное, да и скрипт
>не совсем удачно написан по исполнению, что будет если какая-то команда
>завершилась неудачно? Везде command && comand и нигде обработки на случай
>неудачи.


Вот переменные cron:
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
HOME=/var/log

Так как в Shell программирование не силен, по этому делаю как получается!!
В дельнейшем постараюсь исправиться!!!

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "FreeBSD && cron проблема!!!"
Сообщение от lavr emailИскать по авторуВ закладки on 15-Дек-04, 15:06  (MSK)
>>>У Крона некоторые переменные окружения свои! В том числе и PATH.
>>>
>>>Посмотрите файл /etc/crontab, там в самом начале есть определение переменной PATH, где
>>>НЕТ по умолчанию ветки /usr/local/.., так что Крон может элементарно не
>>>знать, что такое mysql и где его искать!..
>>
>>cron и не знает, и не только про mysql, а и про
>>все остальное, да и скрипт
>>не совсем удачно написан по исполнению, что будет если какая-то команда
>>завершилась неудачно? Везде command && comand и нигде обработки на случай
>>неудачи.
>
>
>Вот переменные cron:
>SHELL=/bin/sh
>PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
>HOME=/var/log
>
>Так как в Shell программирование не силен, по этому делаю как получается!!
>


which cp
which rm
which awk
which mysql

ну и используй себе наздоровье /path/command и /path/filename

ps. иногда имеет смысл смотреть стартап скрипты для SHELL пользователя
под которым используется crontab, там могут быть алиасы на команды

>В дельнейшем постараюсь исправиться!!!

дело поправимое

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "FreeBSD && cron проблема!!!"
Сообщение от Atomic Искать по авторуВ закладки(??) on 16-Дек-04, 09:15  (MSK)
>>>>У Крона некоторые переменные окружения свои! В том числе и PATH.
>>>>
>>>>Посмотрите файл /etc/crontab, там в самом начале есть определение переменной PATH, где
>>>>НЕТ по умолчанию ветки /usr/local/.., так что Крон может элементарно не
>>>>знать, что такое mysql и где его искать!..
>>>
>>>cron и не знает, и не только про mysql, а и про
>>>все остальное, да и скрипт
>>>не совсем удачно написан по исполнению, что будет если какая-то команда
>>>завершилась неудачно? Везде command && comand и нигде обработки на случай
>>>неудачи.
>>
>>
>>Вот переменные cron:
>>SHELL=/bin/sh
>>PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
>>HOME=/var/log
>>
>>Так как в Shell программирование не силен, по этому делаю как получается!!
>>
>
>
>which cp
>which rm
>which awk
>which mysql
>
>ну и используй себе наздоровье /path/command и /path/filename
>
>ps. иногда имеет смысл смотреть стартап скрипты для SHELL пользователя
>под которым используется crontab, там могут быть алиасы на команды
>
>>В дельнейшем постараюсь исправиться!!!
>
>дело поправимое

Всем спасибо, особенно за подсказку с переменными я их не стал в кроне менять просто полный путь в скрипте до mysql прописал!!!

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру