LINUX.ORG.RU

Bash скрипт для Yota

 , , , ,


2

2

Здравствуйте! Запилил скрипт для openwrt, для автоматического продления халявных 64к, но есть проблема, при выполнении получаю «not found». Скрипт вызываю через cron:

*/1 * * * * /bin/sh /root/check_yota.sh >> /root/log
Прошу взглянуть и указать на неточности.

#!/bin/sh

edate=`date`
checkhost=ya.ru
useragaent="Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0"
COMMANDACCESS="accept_lte=1&redirurl=$checkhost%2F&connection_type=sa&service_id=Service_Access_Temp"
CHECK="/usr/bin/curl -A "\"$useragaent\"""
#CHECK="/usr/bin/wget -U \"$useragaent\""

COMMANDCHECK="$CHECK -s -I $checkhost"
#COMMANDCHECK="$CHECK -S --spider $checkhost"

SCRIPTRUN="$CHECK --data \"$COMMANDACCESS\" http://hello.yota.ru/php/go.php"
#SCRIPTRUN='$CHECK --post-data \"$COMMANDACCESS\" http://hello.yota.ru/php/go.php"

#if [ $($COMMANDCHECK | grep -Ec 'HTTP/1\.1 301|HTTP/1\.1 302') -gt 0 ];
if [ $($COMMANDCHECK | grep -Ec 'http://hello.yota.ru') -gt 0 ];
then
echo "----- Check start "$edate" -----";
"$SCRIPTRUN"
echo "----- Check end "$edate" -----\n";
fi

Ошибки находил при вызове через sh -x check_yota.sh

+ date
+ edate=Tue Mar  3 17:48:32 GMT 2015
+ checkhost=ya.ru
+ useragaent=Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0
+ COMMANDACCESS=accept_lte=1&redirurl=ya.ru%2F&connection_type=sa&service_id=Service_Access_Temp
+ CHECK=/usr/bin/curl -A "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0"
+ COMMANDCHECK=/usr/bin/curl -A "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0" -s -I ya.ru
+ SCRIPTRUN=/usr/bin/curl -A "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0" --data "accept_lte=1&redirurl=ya.ru%2F&connection_type=sa&service_id=Service_Access_Temp" http://hello.yota.ru/php/go.php
+ /usr/bin/curl -A "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0" -s -I ya.ru
+ grep -Ec http://hello.yota.ru
+ [ 1 -ge 0 ]
+ echo ----- Check start Tue Mar 3 17:48:32 GMT 2015 -----
----- Check start Tue Mar 3 17:48:32 GMT 2015 -----
+ /usr/bin/curl -A "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0" --data "accept_lte=1&redirurl=ya.ru%2F&connection_type=sa&service_id=Service_Access_Temp" http://hello.yota.ru/php/go.php
check_yota.sh: line 1: /usr/bin/curl -A "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0" --data "accept_lte=1&redirurl=ya.ru%2F&connection_type=sa&service_id=Service_Access_Temp" http://hello.yota.ru/php/go.php: not found
+ echo ----- Check end Tue Mar 3 17:48:32 GMT 2015 -----\n
----- Check end Tue Mar 3 17:48:32 GMT 2015 -----\n

А curl-то есть?

ls -l /usr/bin/curl

И в sha-bang (первая строчка скрипта) /bin/bash пропиши.

alozovskoy ★★★★★ ()
Последнее исправление: alozovskoy (всего исправлений: 1)

для автоматического продления халявных 64к

Про что речь? Если про бесплатную раздачу мобильного интернета, то просто меняй TTL, и скорость резаться не будет.

Deleted ()
Ответ на: комментарий от alozovskoy

curl - есть, если выполнить руками

/usr/bin/curl -A "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0" --data "accept_lte=1&redirurl=ya.ru%2F&connection_type=sa&service_id=Service_Access_Temp" http://hello.yota.ru/php/go.php
то всё работает, а в скрипте не хочет. Если убрать использование useragent - проблем нет. Возможно символы надо заэкранировать, но какие, пробовал всё что там есть - нет результата.

TerAnYu ()
Ответ на: комментарий от Deleted

Нет, не беслатную, а про 64к, если нет денежных средств. При заблокированном балансе, при попытке открыть любой сайт, попадаешь на заглушку, где предлагают пополнить счёт, либо нажать на кнопку продолжения использовать 64к бесплатно.

TerAnYu ()
Ответ на: комментарий от alozovskoy

Исправление на #!/bin/bash - не помогло, идиночные кавычки - тоже. Ну как, есть вариант вообще не использовать юзерагент, но подобная проблема уже была (выкачивал прайсы магазинов при помощи wget - его заблокировали, пришлось useragent использовать), поэтому решил использовать и перестраховаться.

TerAnYu ()
Ответ на: комментарий от TerAnYu

А кинь скрипт именно как он у тебя (файл) - почему-то у тебя вся строка с параметрами воспринимается как одна команда. Может там вместо пробелов какие-то иные символы? (Ну это уже гадание на кофейной гуще, у меня получается подобный результат с « » перед первым параметром, но дальше - нет)

alozovskoy ★★★★★ ()
Последнее исправление: alozovskoy (всего исправлений: 2)
Ответ на: комментарий от TerAnYu
./check_yota.sh 
----- Check start Ср мар 11 22:38:32 MSK 2015 -----
curl: (6) Could not resolve host: Mozilla
curl: (6) Could not resolve host: (Windows
curl: (6) Could not resolve host: NT
curl: (6) Could not resolve host: 6.1;
curl: (6) Could not resolve host: WOW64;
curl: (6) Could not resolve host: rv
curl: (6) Could not resolve host: Gecko
curl: (6) Could not resolve host: Firefox
<html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.2.8</center>
</body>
</html>
----- Check end Ср мар 11 22:38:32 MSK 2015 -----
alozovskoy ★★★★★ ()
Ответ на: комментарий от alozovskoy

Да, много откатил редактирования, надо было оставить: «$SCRIPTRUN» на 20-ой строке.

TerAnYu ()
Ответ на: комментарий от TerAnYu

Так, ошибка как раз на этом «$SCRIPTRUN» на 20-ой строке.

Поменяй на

eval "$SCRIPTRUN"
./check_yota.sh 
----- Check start Ср мар 11 22:50:20 MSK 2015 -----
<html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.2.8</center>
</body>
</html>
----- Check end Ср мар 11 22:50:20 MSK 2015 -----
alozovskoy ★★★★★ ()
Последнее исправление: alozovskoy (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.