Проблем с Bash скрипт

6 отговора 290 прегледа
#1

Проблем с Bash скрипт

Здравейте не знам дали ще мога да обясня проблема точно но ще се опитам.

Значи имам сървър, който отчита трафика на потребителите и го записва в MySQL база данни. На мен ми трябва тази база данни да се чете на всеки един час (правя го с crond) за да мога да я ползвам след това тази извадка (данните се записват в текстов файл).

И точно тук е проблема: когато скрипта се стартира от конзолата всичко е ОК трафика се записва в текстовия файл. Когато обаче скрипта се пусне чрез cron записва текстов файл с големина 0B.

ПС: Само не казвайте: Защо си го направил на Bash, а не на нещо друго?
Ами не разбирам от никакви езици и скриптове и реших че на Bash ще ми е най-лесно (успях за 2 дена )

Отговор
в отговор на mimosh #2

Re: Проблем с Bash скрипт

Ами виж правата на директорията, Cron'a на кой user е и т.н.

Отговор
в отговор на mimosh #3

Re: Проблем с Bash скрипт

kato se startira cron job ako neshto ne mine kakto trqbva obiknoveno se izpechatva neshto. Vsichko koeto se printva ot programata se prihvashta ot crona i se prashta kato mail na usera kat koito se izpylnqva cron joba. Pogledni maila i nai veroqtno shte rzberesh zashto ne raboti.

Отговор
в отговор на psy__ #4

Re: Проблем с Bash скрипт

...И се записва във /var/log/cron

Отговор
в отговор на mimosh #5

Re: Проблем с Bash скрипт

Проблемът ти е, че когато се стартира шел скрипт от крон, environment-a ти е силно орязан и множеството програми, които ползваш в скрипта просто не могат да си намерят настройките и допълнителните пътища към изпълнимите файлове. Най-лесно този проблем се решава като забиеш в началото на скрипта команда в стил:
set > /tmp/env.txt
след което, като се изпълни, сравняваш съдържанието на въпросния env.txt с текущите настройки и добавяш липсващите в началото шел скрипта си (може би като export, а не просто с присвояване, зависи).

Отговор
в отговор на novobranec #6

Re: Проблем с Bash скрипт

Провери дали в скрипта са указани абсолютни пътища до програмите и фаиловете които се използват

Абе я най-добре покажи скрипта защо гадаем!

Редактирано от novobranec на

Отговор
в отговор на пинrвин-лeшoяд #7

Re: Проблем с Bash скрипт

MAILTO="me@mydomain.com"
42 * * * * env && /bin/bash -x /where/my/script/is.sh
#....

man bash
man cron


RTFM!
--sdg
Отговор