The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"переменная в скрипте, как результат другого скрипта и cron"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"переменная в скрипте, как результат другого скрипта и cron"  +/
Сообщение от Alting email(ok) on 31-Янв-11, 08:37 
И снова здравствуйте!
Есть некий bash скрипт.
В нем есть переменные, которые получаются как результат запуска других bash скриптов.
Как всегда, в консоли все работает идеально, а при вызове скрипта по cron-у полная тишина.
В сислоге видно, что скрипт запускается и все!
Ни вывода конечной информации, ни результата выполнения скрипта на мыло, НИЧЕГО!
Как лечить, собственно?
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "переменная в скрипте, как результат другого скрипта и cron"  +/
Сообщение от phpcoder email(ok) on 31-Янв-11, 08:49 
>Как лечить, собственно?

Включить мозг, закатать рукава и поправить скрипт.


(Ну а если серьёзно, то как вы думаете мы вам поможем не видя, например, скрипта? По фотографии прикажете лечить?! Проверяйте что в скрипте указаны полные пути либо корректно установлена переменная $PATH, попробуйте отлаживать -- sh -x и через su -l от имени пользователя под которым работает cron)

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "переменная в скрипте, как результат другого скрипта и cron"  +/
Сообщение от Alting email(ok) on 31-Янв-11, 09:01 
>>Как лечить, собственно?
> Включить мозг, закатать рукава и поправить скрипт.
> (Ну а если серьёзно, то как вы думаете мы вам поможем не
> видя, например, скрипта? По фотографии прикажете лечить?! Проверяйте что в скрипте
> указаны полные пути либо корректно установлена переменная $PATH, попробуйте отлаживать
> -- sh -x и через su -l от имени пользователя под
> которым работает cron)

По фотографии было бы неплохо, конечно...
Вот скрипт:
cat /usr/local/sbin/VoipBalance
#!/bin/bash
SIP_USER=sipuser
SIP_PASS=sippass
ACCOUNT_ID=0055697070
sipnet=`curl --silent --user $SIP_USER:$SIP_PASS  "https://customer.voipexchange.ru/cgi-bin/Exchange.dll/MTK?op...$ACCOUNT_ID" | gzip -dc - | awk -F 'Balance' '$2!~/^$/ { gsub(/[^0-9.]/, "", $2); print $2 }'`
voipdisc_c=`/usr/local/sbin/fincheck creditcents voipdiscount voipuser voippass`
voipdisc_e=$(echo "scale=2 ; $voipdisc_c/100" | bc)
voipdisc_rub=`/usr/local/bin/ccc $voipdisc_e EUR RUR`
voipdisc_rub_round=$(echo "scale=2 ; $voipdisc_rub/1" | bc)
sipnet_round=$(echo "scale=0 ; $sipnet/1" | bc)
sipnet_f=$(echo "scale=2 ; $sipnet/1" | bc)
sipnet_rub=`/usr/local/bin/ccc $sipnet USD RUR`
sipnet_rub_round=$(echo "scale=2 ; $sipnet_rub/1" | bc)
if [ $sipnet_round -lt 5 ]
        then
        echo "Проплати СИПНЕТ! Осталось $sipnet_f долларов, $sipnet_rub_round рублей по курсу ЦБ!" |  /usr/bin/sendxmpp jab@jabber.domain.ru
        /usr/local/sbin/fincheck sms voipdiscount voipuser voippass "Sipnet balance $sipnet_f dollars" +79161234567
        else
        echo "СИПНЕТ: баланс $sipnet_f долларов. $sipnet_rub_round рублей по курсу ЦБ" |  /usr/bin/sendxmpp jab@jabber.domain.ru
fi
voipdisc_round=$(echo "scale=0 ; $voipdisc_e/1" | bc)
if [ $voipdisc_round -lt 3 ]
        then
        echo "Проплати VOIPDISCOUNT! Осталось $voipdisc_e евро, $voipdisc_rub_round рублей по курсу ЦБ!" | /usr/bin/sendxmpp jab@jabber.domain.ru
        /usr/local/sbin/fincheck smsbalance voipdiscount voipuser voippass +79161234567
        else
        echo "VOIPDISCOUNT: баланс $voipdisc_e евро. $voipdisc_rub_round рублей по курсу ЦБ" | /usr/bin/sendxmpp jab@jabber.domain.ru
fi

Если нужны скрипты, вызываемые в переменных - выложу.
Собственно, скрипт fincheck тут:
http://www.simong.net/finarea/fincheck
А скрипт конвертации валют тут:
http://welinux.ru/post/2329/


Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "переменная в скрипте, как результат другого скрипта и cron"  +/
Сообщение от phpcoder email(ok) on 31-Янв-11, 09:10 
> sipnet=`curl --silent --user $SIP_USER:$SIP_PASS  "https://customer.voipexchange.ru/cgi-bin/Exchange.dll/MTK?op...$ACCOUNT_ID"
> | gzip -dc - | awk -F 'Balance' '$2!~/^$/ { gsub(/[^0-9.]/,
> "", $2); print $2 }'`

curl, gzip, awk

> voipdisc_e=$(echo "scale=2 ; $voipdisc_c/100" | bc)
> voipdisc_rub_round=$(echo "scale=2 ; $voipdisc_rub/1" | bc)
> sipnet_round=$(echo "scale=0 ; $sipnet/1" | bc)
> sipnet_f=$(echo "scale=2 ; $sipnet/1" | bc)
> sipnet_rub_round=$(echo "scale=2 ; $sipnet_rub/1" | bc)

bc

Попробуйте прописать полные пути, либо установите $PATH.


Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "переменная в скрипте, как результат другого скрипта и cron"  +/
Сообщение от Alting email(ok) on 31-Янв-11, 09:49 
>[оверквотинг удален]
>> | gzip -dc - | awk -F 'Balance' '$2!~/^$/ { gsub(/[^0-9.]/,
>> "", $2); print $2 }'`
> curl, gzip, awk
>> voipdisc_e=$(echo "scale=2 ; $voipdisc_c/100" | bc)
>> voipdisc_rub_round=$(echo "scale=2 ; $voipdisc_rub/1" | bc)
>> sipnet_round=$(echo "scale=0 ; $sipnet/1" | bc)
>> sipnet_f=$(echo "scale=2 ; $sipnet/1" | bc)
>> sipnet_rub_round=$(echo "scale=2 ; $sipnet_rub/1" | bc)
> bc
> Попробуйте прописать полные пути, либо установите $PATH.

Разобрался.
Проблема была с sendxmpp, а точнее с его конфигом - ~/.sendxmpprc
Запускал от рута по лени, а он наследовал все переменные обычного юзера по sudo, включая расположение конфига не в домашней папке рута, а в домашней папке юзера. Не являясь его овнером, что проверяет сам sendxmpp при запуске...
Короче, это все заморочки Alt Linux-а.
Поставил в крон обычному юзеру - все заработало.
Спасибо!

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "переменная в скрипте, как результат другого скрипта и cron"  +/
Сообщение от phpcoder email(ok) on 31-Янв-11, 10:08 
> Короче, это все заморочки Alt Linux-а.

Мне всё-таки кажется, что вы тоже "хороши". От рута там что-то запускаете, не понимая до конца что это вам сулит, а потом наступаете на грабли и обвиняете их в том, что они не там лежат. Ну так не надо было их раскладывать ;-)

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "переменная в скрипте, как результат другого скрипта и cron"  +/
Сообщение от Alting email(ok) on 31-Янв-11, 10:09 
>> Короче, это все заморочки Alt Linux-а.
> Мне всё-таки кажется, что вы тоже "хороши". От рута там что-то запускаете,
> не понимая до конца что это вам сулит, а потом наступаете
> на грабли и обвиняете их в том, что они не там
> лежат. Ну так не надо было их раскладывать ;-)

Да я и не спорю ж :)
От рута - моветон, согласен.


Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

Архив | Удалить

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




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

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