LINUX.ORG.RU

Скрипт для автоматического подключения сети.

 , , , ,


1

1

Здравствуйте! Пытаюсь запустить скрипт на автопродление доступа в интернет. Тема эта обсуждалась Bash скрипт для Yota, или вот http://arduino.ru/forum/obshchii/ofitsialnyi-besplatnyi-internet-ot-yota-dlya... но у меня почему то не получается. На борту OpenWrt Chaos Calmer 15.05 / LuCI (git-15.248.30277-3836b45), сеть настроена, пакеты «curl» «bash» «wget» установлены. Скрипт check_yota.sh написан и находится в папке /root/

#!/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" -----";
eval "$SCRIPTRUN"
echo "----- Check end "$edate" -----\n";
fi

В планировщике написана задача root -> /etc/crontabs/

*/1 * * * * /bin/sh /root/check_yota.sh >> /root/log
при вызове через SSH: crontab -l появляется
*/1 * * * * /bin/sh /root/check_yota.sh >> /root/log
значит cron работает.

Проблема со скриптом я так думаю.

при вызове через SSH: sh -x check_yota.sh

root@OpenWrt:~# sh -x check_yota.sh
+
: not foundsh: line 1:
+ date
+ edate=Sat Apr 13 17:54:53 MSK 2019
+ checkhost=google.com
+ useragaent=Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0
&connection_type=sa&service_id=Sliders_Free_Temp%2Fwww.google.com
+ CHECK=/usr/bin/curl -A "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/201"0101 Firefox/36.0
+
: not foundsh: line 1:
+ COMMANDCHECK=/usr/bin/curl -A "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Ge -s -I google.comfox/36.0
+
: not foundsh: line 1:
+ SCRIPTRUN=/usr/bin/curl -A "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko" http://hello.yota.ru/php/go.phpiders_Free_Tempgoogle.com
+
: not foundsh: line 1:
check_yota.sh: line 22: syntax error: unexpected "fi" (expecting "then")

Прописывая команду:

/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

Получаю все ок, интернет включается:

root@OpenWrt:~# /usr/bin/curl -A "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) G
ecko/20100101 Firefox/36.0" --data "accept_lte=1&redirurl=ya.ru%2F&connection_ty
pe=sa&service_id=Service_Access_Temp" http://hello.yota.ru/php/go.php
<!DOCTYPE html>
<html lang="ru-RU">
    <head>
        <title>Пожалуйста подождите...</title>

        <meta charset="utf-8">

        <link rel="stylesheet" type="text/css" href="//hello.ystat.ru/css/common.css" media="all">
        <link rel="stylesheet" type="text/css" href="//hello.ystat.ru/css/style.css" media="all">
        <link rel="stylesheet" type="text/css" href="//hello.ystat.ru/fonts/stylesheet.css" media="all">

        <!--[if lt IE 9]>
        <link rel="stylesheet" href="//hello.ystat.ru/css/ie8.css" media="screen" />
        <![endif]-->
    </head>
    <body>
        <div class="l-outer">

            <div class="l-header">
                <div class="l-header-inner">
                    <div class="b-lang-selector">
                        <!--<ul id="localeSwitcher">
                            <li class="active">
                                <a href="./?locale=ru">RU</a>
                            </li>
                            <li>
                                <a href="./?locale=en">EN</a>
                            </li>
                        </ul>-->
                    </div>
                    <div class="b-logo">
                        <img src="//hello.ystat.ru/i/logo.png" alt="Yota" />
                    </div>
                </div>
            </div>

            <div class="l-header-shadow"></div>

            <div class="l-content">
                <div class="b-content-shadow"></div>
                <div class="b-content-text">
                    <div class="b-content-longtext">
                        <p>Пожалуйста подождите...</p>
                    </div>
                </div>
                <div class="b-shadow-line"></div>
                <div class="b-image">
                    <img src="//hello.ystat.ru/i/big/try-again.png" alt="" />
                </div>
            </div>
        </div>
        <div class="l-footer">
            <div class="b-footer-phrase">Вопросы? Позвоните: 8 800 700 55 00</div>
            <div class="b-footer-inner">
                <div class="b-footer-inner-line">
                    <div class="b-footer-copyright">© Yota. Все права защищены.</div>
                    <div class="b-footer-logo">
                        <img src="//hello.ystat.ru/i/b-footer-logo.png" alt="Yota" />
                    </div>
                </div>
            </div>
        </div>

        <script type="text/javascript">
            setTimeout(function() {
                window.location = 'ya.ru/';
            }, 5000)
        </script>
    </body>

Что я неправильно делаю? Файлы находятся здесь: https://yadi.sk/d/1b3xkSUuBm4AdQ


$ [ $(/usr/bin/curl -A "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko" http://hello.yota.ru/php/go.phpiders_Free_Tempgoogle.com | grep -Ec 'http://hello.yota.ru') -gt 0 ] && echo "e"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   162  100   162    0     0   3226      0 --:--:-- --:--:-- --:--:-- 10125
$ if [ $(/usr/bin/curl -A "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko" http://hello.yota.ru/php/go.phpiders_Free_Tempgoogle.com | grep -Ec 'http://hello.yota.ru') -gt 0 ]; then; echo "e"; fi
bash: syntax error near unexpected token `;'

Обращаю внимание на точки с запятой.

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

checkhost=ya.ru

+ checkhost=google.com

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

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

ya.ru или google.com без разницы результат тот же самый! Просто я экспериментировал.

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

Теперь я получаю:

root@OpenWrt:~# sh -x check_yota.sh
+ date
+ edate=Sat Apr 13 20:13:46 MSK 2019
+ checkhost=google.com
+ useragaent=Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0
+ COMMANDACCESS=accept_lte=1&redirurl=http%3A%2F%2Fwww.google.com&connection_type=sa&service_id=Sliders_Free_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 google.com
+ 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=http%3A%2F%2Fwww.google.com&connection_type=sa&service_id=Sliders_Free_Temp" http://hello.yota.ru/php/go.php
+ grep -Ec http://hello.yota.ru
+ /usr/bin/curl -A "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0" -s -I google.com
+ [ 0 -gt 0 ]

A4TECH
() автор топика
Ответ на: комментарий от legolegs

Все равно не запускается, снова запустил вручную.

Sat Apr 13 18:26:00 2019 cron.info crond[2206]: USER root pid 2333 cmd /bin/sh /root/check_yota.sh >> /root/log
Sat Apr 13 18:26:14 2019 authpriv.info dropbear[2340]: Child connection from 192.168.1.118:51602
Sat Apr 13 18:26:17 2019 authpriv.notice dropbear[2340]: Password auth succeeded for 'root' from 192.168.1.118:51602
Sat Apr 13 18:27:00 2019 cron.info crond[2206]: USER root pid 2344 cmd /bin/sh /root/check_yota.sh >> /root/log
Sat Apr 13 18:28:00 2019 cron.info crond[2206]: USER root pid 2351 cmd /bin/sh /root/check_yota.sh >> /root/log
Sat Apr 13 18:29:00 2019 cron.info crond[2206]: USER root pid 2364 cmd /bin/sh /root/check_yota.sh >> /root/log
Sat Apr 13 18:29:37 2019 cron.info crond[2389]: crond (busybox 1.23.2) started, log level 8
Sat Apr 13 18:30:00 2019 cron.info crond[2389]: USER root pid 2392 cmd /bin/sh /root/check_yota.sh >> /root/log
Sat Apr 13 18:31:00 2019 cron.info crond[2389]: USER root pid 2400 cmd /bin/sh /root/check_yota.sh >> /root/log
Sat Apr 13 18:32:00 2019 cron.info crond[2389]: USER root pid 2408 cmd /bin/sh /root/check_yota.sh >> /root/log
Sat Apr 13 18:32:11 2019 daemon.info hostapd: wlan0: STA 70:72:0d:6b:d1:d4 WPA: group key handshake completed (WPA)
Sat Apr 13 18:32:11 2019 daemon.info hostapd: wlan0: STA 44:6d:57:e3:77:35 WPA: group key handshake completed (WPA)
Sat Apr 13 18:33:00 2019 cron.info crond[2389]: USER root pid 2414 cmd /bin/sh /root/check_yota.sh >> /root/log
Sat Apr 13 18:34:00 2019 cron.info crond[2389]: USER root pid 2420 cmd /bin/sh /root/check_yota.sh >> /root/log
Sat Apr 13 18:35:00 2019 cron.info crond[2389]: USER root pid 2426 cmd /bin/sh /root/check_yota.sh >> /root/log

автоматически скрипт не запускается все равно.

A4TECH
() автор топика
Ответ на: комментарий от legolegs

А вот что в log https://yadi.sk/d/7J2rCoZSsxnUHA.

Вот мне автор TerAnYu ответил:

1. Вам необходимо установить нормальный wget или curl, иначе ничего не заработает.

2. Этот скрипт уже не работает, YOTA его определяет и игнорит.

Мне новый скрипт придется писать? Может у кого есть готовый?

A4TECH
() автор топика
Ответ на: комментарий от legolegs

После нескольких десятков перезаписи скрипта check_yota.sh и перезагрузок cron удалось достичь результата:

---- Check start Sun Apr 14 04:40:00 MSK 2019 -----
----- Check end Sun Apr 14 04:40:00 MSK 2019 -----\n
----- Check start Sun Apr 14 04:41:00 MSK 2019 -----
----- Check end Sun Apr 14 04:41:00 MSK 2019 -----\n
----- Check start Sun Apr 14 04:42:00 MSK 2019 -----
----- Check end Sun Apr 14 04:42:00 MSK 2019 -----\n
----- Check start Sun Apr 14 04:43:00 MSK 2019 -----
----- Check end Sun Apr 14 04:43:00 MSK 2019 -----\n
----- Check start Sun Apr 14 04:44:00 MSK 2019 -----
----- Check end Sun Apr 14 04:44:00 MSK 2019 -----\n
----- Check start Sun Apr 14 04:45:00 MSK 2019 -----
----- Check end Sun Apr 14 04:45:00 MSK 2019 -----\n
----- Check start Sun Apr 14 04:46:00 MSK 2019 -----
----- Check end Sun Apr 14 04:46:00 MSK 2019 -----\n
----- Check start Sun Apr 14 04:47:00 MSK 2019 -----
----- Check end Sun Apr 14 04:47:00 MSK 2019 -----\n
----- Check start Sun Apr 14 04:48:00 MSK 2019 -----
----- Check end Sun Apr 14 04:48:00 MSK 2019 -----\n
----- Check start Sun Apr 14 04:49:00 MSK 2019 -----
----- Check end Sun Apr 14 04:49:00 MSK 2019 -----\n
----- Check start Sun Apr 14 04:50:00 MSK 2019 -----
----- Check end Sun Apr 14 04:50:00 MSK 2019 -----\n
----- Check start Sun Apr 14 06:55:00 MSK 2019 -----
----- Check end Sun Apr 14 06:55:00 MSK 2019 -----\n
----- Check start Sun Apr 14 06:56:00 MSK 2019 -----
----- Check end Sun Apr 14 06:56:00 MSK 2019 -----\n
----- Check start Sun Apr 14 06:57:00 MSK 2019 -----
----- Check end Sun Apr 14 06:57:00 MSK 2019 -----\n
----- Check start Sun Apr 14 07:04:00 MSK 2019 -----
<!DOCTYPE html>
<html lang="ru-RU">
    <head>
        <title>Пожалуйста подождите...</title>

        <meta charset="utf-8">

        <link rel="stylesheet" type="text/css" href="//hello.ystat.ru/css/common.css" media="all">
        <link rel="stylesheet" type="text/css" href="//hello.ystat.ru/css/style.css" media="all">
        <link rel="stylesheet" type="text/css" href="//hello.ystat.ru/fonts/stylesheet.css" media="all">

        <!--[if lt IE 9]>
        <link rel="stylesheet" href="//hello.ystat.ru/css/ie8.css" media="screen" />
        <![endif]-->
    </head>
    <body>
        <div class="l-outer">

            <div class="l-header">
                <div class="l-header-inner">
                    <div class="b-lang-selector">
                        <!--<ul id="localeSwitcher">
                            <li class="active">
                                <a href="./?locale=ru">RU</a>
                            </li>
                            <li>
                                <a href="./?locale=en">EN</a>
                            </li>
                        </ul>-->
                    </div>
                    <div class="b-logo">
                        <img src="//hello.ystat.ru/i/logo.png" alt="Yota" />
                    </div>
                </div>
            </div>

            <div class="l-header-shadow"></div>

            <div class="l-content">
                <div class="b-content-shadow"></div>
                <div class="b-content-text">
                    <div class="b-content-longtext">
                        <p>Пожалуйста подождите...</p>
                    </div>
                </div>
                <div class="b-shadow-line"></div>
                <div class="b-image">
                    <img src="//hello.ystat.ru/i/big/try-again.png" alt="" />
                </div>
            </div>
        </div>
        <div class="l-footer">
            <div class="b-footer-phrase">Вопросы? Позвоните: 8 800 700 55 00</div>
            <div class="b-footer-inner">
                <div class="b-footer-inner-line">
                    <div class="b-footer-copyright">© Yota. Все права защищены.</div>
                    <div class="b-footer-logo">
                        <img src="//hello.ystat.ru/i/b-footer-logo.png" alt="Yota" />
                    </div>
                </div>
            </div>
        </div>

        <script type="text/javascript">
            setTimeout(function() {
                window.location = 'ya.ru/';
            }, 5000)
        </script>
    </body>
</html>----- Check end Sun Apr 14 07:04:00 MSK 2019 -----\n
----- Check start Sun Apr 14 09:07:00 MSK 2019 -----
<!DOCTYPE html>
<html lang="ru-RU">
    <head>
        <title>Пожалуйста подождите...</title>

        <meta charset="utf-8">

        <link rel="stylesheet" type="text/css" href="//hello.ystat.ru/css/common.css" media="all">
        <link rel="stylesheet" type="text/css" href="//hello.ystat.ru/css/style.css" media="all">
        <link rel="stylesheet" type="text/css" href="//hello.ystat.ru/fonts/stylesheet.css" media="all">

        <!--[if lt IE 9]>
        <link rel="stylesheet" href="//hello.ystat.ru/css/ie8.css" media="screen" />
        <![endif]-->
    </head>
    <body>
        <div class="l-outer">

            <div class="l-header">
                <div class="l-header-inner">
                    <div class="b-lang-selector">
                        <!--<ul id="localeSwitcher">
                            <li class="active">
                                <a href="./?locale=ru">RU</a>
                            </li>
                            <li>
                                <a href="./?locale=en">EN</a>
                            </li>
                        </ul>-->
                    </div>
                    <div class="b-logo">
                        <img src="//hello.ystat.ru/i/logo.png" alt="Yota" />
                    </div>
                </div>
            </div>

            <div class="l-header-shadow"></div>

            <div class="l-content">
                <div class="b-content-shadow"></div>
                <div class="b-content-text">
                    <div class="b-content-longtext">
                        <p>Пожалуйста подождите...</p>
                    </div>
                </div>
                <div class="b-shadow-line"></div>
                <div class="b-image">
                    <img src="//hello.ystat.ru/i/big/try-again.png" alt="" />
                </div>
            </div>
        </div>
        <div class="l-footer">
            <div class="b-footer-phrase">Вопросы? Позвоните: 8 800 700 55 00</div>
            <div class="b-footer-inner">
                <div class="b-footer-inner-line">
                    <div class="b-footer-copyright">© Yota. Все права защищены.</div>
                    <div class="b-footer-logo">
                        <img src="//hello.ystat.ru/i/b-footer-logo.png" alt="Yota" />
                    </div>
                </div>
            </div>
        </div>

        <script type="text/javascript">
            setTimeout(function() {
                window.location = 'ya.ru/';
            }, 5000)
        </script>
    </body>
</html>----- Check end Sun Apr 14 09:07:00 MSK 2019 -----\n
Значит скрипт еще актуален. Посмотрим, что дальше будет.

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

Судя по вашим лагам всё хорошо. Скрипт проверяет $checkhost и при проверке адрес $checkhost доступен, а если при проверке получим http://hello.yota.ru, тогда скрипт ещё раз выполнит post запрос с нужными параметрами.

Видимо не до конца разобрались как скрипт работает.

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

Все ок. Сегодня скрипт в авто режиме уже пол дня работает. Вчера этот же скрипт в автомате я не мог запустить. Спасибо друзья за помощь!!!

P.S. Интересно еще какие-либо способы существуют?

A4TECH
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.