Проблем с Bash скрипт
6 отговора
290 прегледа
Проблем с Bash скрипт
Здравейте не знам дали ще мога да обясня проблема точно но ще се опитам.
Значи имам сървър, който отчита трафика на потребителите и го записва в MySQL база данни. На мен ми трябва тази база данни да се чете на всеки един час (правя го с crond) за да мога да я ползвам след това тази извадка (данните се записват в текстов файл).
И точно тук е проблема: когато скрипта се стартира от конзолата всичко е ОК трафика се записва в текстовия файл. Когато обаче скрипта се пусне чрез cron записва текстов файл с големина 0B.
ПС: Само не казвайте: Защо си го направил на Bash, а не на нещо друго?
Ами не разбирам от никакви езици и скриптове и реших че на Bash ще ми е най-лесно (успях за 2 дена
)
Значи имам сървър, който отчита трафика на потребителите и го записва в MySQL база данни. На мен ми трябва тази база данни да се чете на всеки един час (правя го с crond) за да мога да я ползвам след това тази извадка (данните се записват в текстов файл).
И точно тук е проблема: когато скрипта се стартира от конзолата всичко е ОК трафика се записва в текстовия файл. Когато обаче скрипта се пусне чрез cron записва текстов файл с големина 0B.
ПС: Само не казвайте: Защо си го направил на Bash, а не на нещо друго?
Ами не разбирам от никакви езици и скриптове и реших че на Bash ще ми е най-лесно (успях за 2 дена
Re: Проблем с Bash скрипт
Ами виж правата на директорията, Cron'a на кой user е и т.н.
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.
Re: Проблем с Bash скрипт
Проблемът ти е, че когато се стартира шел скрипт от крон, environment-a ти е силно орязан и множеството програми, които ползваш в скрипта просто не могат да си намерят настройките и допълнителните пътища към изпълнимите файлове. Най-лесно този проблем се решава като забиеш в началото на скрипта команда в стил:
set > /tmp/env.txt
след което, като се изпълни, сравняваш съдържанието на въпросния env.txt с текущите настройки и добавяш липсващите в началото шел скрипта си (може би като export, а не просто с присвояване, зависи).
set > /tmp/env.txt
след което, като се изпълни, сравняваш съдържанието на въпросния env.txt с текущите настройки и добавяш липсващите в началото шел скрипта си (може би като export, а не просто с присвояване, зависи).
Re: Проблем с Bash скрипт
Провери дали в скрипта са указани абсолютни пътища до програмите и фаиловете които се използват
Абе я най-добре покажи скрипта защо гадаем!
Абе я най-добре покажи скрипта защо гадаем!
Редактирано от novobranec на
Re: Проблем с Bash скрипт
MAILTO="me@mydomain.com"
42 * * * * env && /bin/bash -x /where/my/script/is.sh
#....
man bash
man cron
RTFM!
--sdg
42 * * * * env && /bin/bash -x /where/my/script/is.sh
#....
man bash
man cron
RTFM!
--sdg