Jump to content

batonskij

Forum Members
  • Posts

    59
  • Joined

  • Last visited

Posts posted by batonskij

  1. 2 часа назад, gvan сказал:

    Полагаю, что при включении HA в архив его размер становится больше, и для обработки архива функционалом самой прошивки не хватает памяти.

    Очень похоже на то, потому что разница между без HA и с HA развернутых пакетов 80 мб против 450 мб.  

    Попробую командой tar когда в следующий раз сломаю. 

      

    2 часа назад, gvan сказал:

    Возможно речь идет о "Приложение-Файлы и папки"?

    нет, речь идет о штатном установщике OPKG пакетов 

    Скрытый текст

    giga.thumb.jpg.b25029c0876ad0a140edf041ba2ab0f3.jpg

     

  2. 16 минут назад, gvan сказал:

    Сам бэкап отрабатыает задачу и ошибок нет

    Все верно, с этим никаких проблем. 

     

    17 минут назад, gvan сказал:

    Что значит невозможно восстановить? Какая ошибка возникает?

    Обычно делаю так, форматирую флеш, если что-то пошло не так, создаю на ней  папку install, туда закидывают файл бэкапа. Жму кнопки в веб морде роутера и жду, обычно все в течении 4-5 мин разворачивается.

    Но если в файле бэкапа есть установленный HA, то все идет иначе, веб морда висит минут 10, далее на флешке в разделе под OPKG появляются не все папки и некоторая их часть зачеркнута. 

  3. Скриптом пользуюсь давно, все устраивало, но недавно заметил что невозможно восстановить при наличии в архиве Home Assistant. Что надо подправить? 

    Скрытый текст
    #!/opt/bin/sh
    
    # VERSION 2.1
    
    # Скрипт сохраняет резервную копию entware, конфига роутера и прошивки
    
    prefix="/opt"
    PATH=${prefix}/bin:${prefix}/sbin:/sbin:/bin:/usr/sbin:/usr/bin
    
    #=====================================================================================
    # Конфигурационные параметры скрипта
    #=====================================================================================
    # Префикс для записи сообщений в syslog
    TAG=Backup
    
    # Каталог, куда сохранять бэкапы
    BACSTORDIR=/tmp/mnt/HDD/Backup/Entware/
    
    # Какие компоненты бэкапить (1|0)
    # Entware. Всегда сохраняется новая копия
    IsEnt=1
    # Конфигурация роутера. Сохраняется копия, если были изменения в конфиге
    IsConf=1
    # Прошивка. Создается резервная копия, если прошивка изменялась
    IsFirm=1
    
    # Префикс для имени файла с бэкапом
    BACNAME=entware
    
    # Что архивировать
    BACDIR=/opt/
    
    # Какие каталоги пропускать при бэкапе entware
    # EXCLUDE="
    # tmp
    # var/log
    # share/nginx/html
    # var/mysql
    # "
    
    # При определении изменялся ли конфиг, не учитывать данные строки (через экраннированный символ "ИЛИ" -> "\|".
    # При сравнении копий конфига не учитываются служебные строки, начинающиеся на '! $$$', и строка 'clock date', т.к. она обновляется при считывании конфига
    # Лучше не трогать :)
    EXCLCONFCMD='\! \$\$\$\|clock date'
    
    # Путь к резервной копии прошивки на USB FLASH. Определить в CLI по команде 'ls ?'. Обычно это метка диска в виде 'LABEL:/'
    BACFIRMDIR=HDD:/Backup/Entware/
    
    # Сколько дней хранить бэкапы.
    DAYSTOR=90
    
    #=====================================================================================
    # Начало скрипта
    #=====================================================================================
    # Текущая дата для формирования имени файла с архивом
    DATE=`date +%Y-%m-%d`
    
    logger -t $TAG "Starting process"
    cd $BACDIR
    
    # Делаем архив entware
    if [ "$IsEnt" = "1" ]
        then
            logger -t $TAG "Starting backup entware"
            echo "$EXCLUDE" | tar -X - -cf - * | gzip > ${BACSTORDIR}${BACNAME}-${DATE}.tgz
        else
            logger -t $TAG "Skiping backup entware"
    fi
    
    # Делаем архив конфига
    if [ "$IsConf" = "1" ]
        then
            logger -t $TAG "Starting backup config"
            ndmq -p "show running-config" -P message > ${BACSTORDIR}config-${DATE}
            if [ -f "${BACSTORDIR}config-cur" ]
                then
                    OLDCONF=`grep -v "${EXCLCONFCMD}" ${BACSTORDIR}config-cur`
                    CURCONF=`grep -v "${EXCLCONFCMD}" ${BACSTORDIR}config-${DATE}`
                    if [ "$OLDCONF" != "$CURCONF" ]
                        then
                            logger -t $TAG "Config is changed. Do new copy."
                            cp -f ${BACSTORDIR}config-${DATE} ${BACSTORDIR}config-cur-new
                            mv -f ${BACSTORDIR}config-cur ${BACSTORDIR}config-${DATE}
                            gzip -f ${BACSTORDIR}config-${DATE}
                            mv ${BACSTORDIR}config-cur-new ${BACSTORDIR}config-cur
                        else
                            logger -t $TAG "Config is not changed. Renew current config copy."
                            mv -f ${BACSTORDIR}config-${DATE} ${BACSTORDIR}config-cur
                    fi
                else
                    logger -t $TAG "Current config copy not found. Is it first run? Do config copy."
                    cp ${BACSTORDIR}config-${DATE} ${BACSTORDIR}config-cur
                    gzip -f ${BACSTORDIR}config-${DATE}
            fi
        else
            logger -t $TAG "Skiping backup config"
    fi
    # Делаем архив прошивки
    if [ "$IsFirm" = "1" ]
        then
            logger -t $TAG "Starting backup firmware"
            REL=`ndmq -p 'show version' -P 'release'`
            ndmq -p "copy flash:/firmware ${BACFIRMDIR}firmware-${DATE}" -P message
            if [ -f "${BACSTORDIR}firmware-$REL" ]
                then
                    CMPFIRM=`cmp ${BACSTORDIR}firmware-$REL ${BACSTORDIR}firmware-${DATE}`
                    if [ -n "$CMPFIRM" ]
                        then
                            logger -t $TAG "Firmware is changed. Do new copy."
                            cp -f ${BACSTORDIR}firmware-${DATE} ${BACSTORDIR}firmware-$REL-new
                            mv -f ${BACSTORDIR}firmware-$REL ${BACSTORDIR}firmware-${DATE}
                            mv ${BACSTORDIR}firmware-$REL-new ${BACSTORDIR}firmware-$REL
                        else
                            logger -t $TAG "Firmware is not changed. Renew current firmware copy."
                            mv -f ${BACSTORDIR}firmware-${DATE} ${BACSTORDIR}firmware-$REL
                    fi
                else
                    logger -t $TAG "Current firmware copy not found. Is it first run? Do firmware copy."
                    cp ${BACSTORDIR}firmware-${DATE} ${BACSTORDIR}firmware-$REL
            fi
        else
            logger -t $TAG "Skiping backup firmware"
    fi
    
    logger -t $TAG "Finished"
    cd $BACSTORDIR
    
    # Выводим в лог список удаленных файлов-архивов
    logger -t $TAG "Remove old archives"
    FILES=`find $BACSTORDIR -mtime +${DAYSTOR} -print -delete`
    logger -t $TAG "Removed: $FILES"
    logger -t $TAG "Exiting"

     

     

  4. echo "src/gz ha http://bin.entware.net/mipselsf-k3.4/test/HA" >> /opt/etc/opkg.conf
    opkg update
    opkg install homeassistant
    opkg install python3-pyturbojpeg
    opkg update
    python -m pip install pip==21.2.4
    /opt/etc/init.d/S99hass start
    ~ # /opt/bin/hass -c /opt/var/lib/homeassistant --debug
    Traceback (most recent call last):
      File "/opt/bin/hass", line 33, in <module>
        sys.exit(load_entry_point('homeassistant==2022.4.4', 'console_scripts', 'hass')())
      File "/opt/lib/python3.10/site-packages/homeassistant/__main__.py", line 281, in main
      File "/opt/lib/python3.10/site-packages/homeassistant/__main__.py", line 64, in get_arguments
      File "/opt/lib/python3.10/site-packages/homeassistant/config.py", line 54, in <module>
      File "/opt/lib/python3.10/site-packages/homeassistant/helpers/config_validation.py", line 83, in <module>
      File "/opt/lib/python3.10/site-packages/homeassistant/helpers/script_variables.py", line 9, in <module>
      File "/opt/lib/python3.10/site-packages/homeassistant/helpers/template.py", line 56, in <module>
      File "/opt/lib/python3.10/site-packages/homeassistant/util/thread.py", line 2, in <module>
      File "/opt/lib/python3.10/ctypes/__init__.py", line 8, in <module>
    ImportError: libffi.so.8: cannot open shared object file: No such file or directory

    Ставлю в нуля, 2 дня бьюсь, никак не поднимается. 

    в ноябре игрался, не зашло, ради одного датчика не стал крутить HA на роутере, удалил, восстановил все с предыдущего бекапа.  

    после этого вапще ничего не менял в OPKG пакетах. 

    куда копать, что делать? 

  5. 10 часов назад, MercuryV сказал:

    или ПК из локальной сети роутера можете тором соединиться через известные мосты?

    нет, не соединяется через общеизвестные мосты. 

    10 часов назад, MercuryV сказал:

    организовать где-то ещё свой мост и не светить его нигде

    спасибо за совет, попробую. 

  6. Приветствую, кто уже столкнулся с нерабочим Tor? Все работало замечательно до позавчера, onion, на удаленных клиентах, настроено по статье с хабра. Неделю назад все сдохло, добавил мосты, несколько дней не было проблем. Мосты менял, не помогает. Есть решение? 

  7. 14 часа назад, vadimbn сказал:

    Пакет libffi установлен?

    Скрытый текст
    ~ # opkg info libffi
    Package: libffi
    Version: 3.4.2-1
    Depends: libc, libssp, librt, libpthread
    Status: unknown ok not-installed
    Section: libs
    Architecture: mipsel-3.4
    Size: 16242
    Filename: libffi_3.4.2-1_mipsel-3.4.ipk
    Description: The libffi library provides a portable, high level programming interface to
     various calling conventions. This allows a programmer to call any function
     specified by a call interface description at run-time.
    
     FFI stands for Foreign Function Interface. A foreign function interface is the
     popular name for the interface that allows code written in one language to call
     code written in another language. The libffi library really only provides the
     lowest, machine dependent layer of a fully featured foreign function interface.
     A layer must exist above libffi that handles type conversions for values passed
     between the two languages.
    
    Package: libffi
    Version: 3.3-2
    Depends: libc, libssp, librt, libpthread
    Status: install ok installed
    Architecture: mipsel-3.4
    Installed-Time: 1603735790

     

    Установлен 

    14 часа назад, vadimbn сказал:

    Вы через pip что-нибудь ставили?

    Не припоминаю такого 

  8. Подскажите пожалуйста, как запустить? 

    Opkg давно установлено и замечательно работает. 

    Выполнил все из поста https://forum.keenetic.com/topic/9423-home-assistant/page/12/#comment-134317

    Все завершилось без проблем, но веб морда HA не стартует, добавил opkg install python3-pyturbojpeg, не помогло.

    Запустил hass вручную с отладкой, получил магические строки и приуныл 

    Скрытый текст
    ~ # /opt/bin/hass -c /opt/var/lib/homeassistant --debug
    Traceback (most recent call last):
      File "/opt/bin/hass", line 33, in <module>
        sys.exit(load_entry_point('homeassistant==2021.11.3', 'console_scripts', 'hass')())
      File "/opt/lib/python3.9/site-packages/homeassistant/__main__.py", line 281, in main
      File "/opt/lib/python3.9/site-packages/homeassistant/__main__.py", line 64, in get_arguments
      File "/opt/lib/python3.9/site-packages/homeassistant/config.py", line 58, in <module>
      File "/opt/lib/python3.9/site-packages/homeassistant/helpers/config_validation.py", line 77, in <module>
      File "/opt/lib/python3.9/site-packages/homeassistant/helpers/script_variables.py", line 9, in <module>
      File "/opt/lib/python3.9/site-packages/homeassistant/helpers/template.py", line 57, in <module>
      File "/opt/lib/python3.9/site-packages/homeassistant/util/thread.py", line 2, in <module>
      File "/opt/lib/python3.9/ctypes/__init__.py", line 8, in <module>
    ImportError: libffi.so.8: cannot open shared object file: No such file or directory

     

     

  9. Обновил скрипт, красивее конечно стало, но сломалось ручное обновление, куда копать?

     файл /opt/etc/lighttpd/conf.d/30-cgi.conf - без изменений: ".cgi" => "/bin/sh"

    в скрипте smarthtml  USE_CGI_MODULE=1 выставил, что-то еще забыл? 

  10. 24 минуты назад, Albram сказал:

    Я не автор этого топика

    Пардон, не заметил что автор топика beowulf0208.

    Действительно, неплохо выглядит вторая  версия, попробую после отпуска. 

  11. Albram, укажите пожалуйста в первом сообщении топика о том что в конфиге lighttpd.conf строка с портом по-умолчанию закомментирована. я несколько раз читал тему и пропускал про это и про cron, о том что без остановки или удалении сервиса правки внесенные в  crontab не применяются. 

    И еще вопрос, можно ли реализовать подобное? Чтобы вместо e-mail оповещения приходили сообщения в телегу, тут ребята пишут что норм отправляется, но я увы не смог осилить.

    Спасибо. 

  12. Albram, спасибо , почти все завелось, но не работает мгновенное обновление. Перечитал тему несколько раз, вроде все рекомендации выполнил. 

    Может совсем глупо, не не понял что означает 

    Цитата

    нужно зайти по адресу \opt/share/www/ и открыть фаил smart.html

    открываю в проводнике \\192.168.1.1\opkg\share\www\smart.html - так корректно? 

    или надо в браузере открывать? тогда адрес не могу подобрать  //192.168.1.1:81\opkg\share\www\smart.html -? , lighttpd крутится на 81 порту

    конфиг правильный в lighttpd.conf?

     

    server.document-root        = "/opt/share/www"
    server.upload-dirs          = ( "/tmp" )
    server.errorlog             = "/opt/var/log/lighttpd/error.log"
    server.pid-file             = "/opt/var/run/lighttpd.pid"
    #server.username             = "http"
    #server.groupname            = "www-data"

    index-file.names            = ( "index.php", "index.html",
                                    "index.htm", "default.htm",
                                  )

    static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )

    ### Options that are useful but not always necessary:
    #server.chroot               = "/"
    server.port                 = 81
    #server.bind                 = "localhost"
    #server.tag                  = "lighttpd"
    #server.errorlog-use-syslog  = "enable"
    #server.network-backend      = "writev"

    ### Use IPv6 if available
    #include_shell "/opt/share/lighttpd/use-ipv6.pl"

    #dir-listing.encoding        = "utf-8"
    #server.dir-listing          = "enable"

    include "/opt/etc/lighttpd/mime.conf"
    include "/opt/etc/lighttpd/conf.d/*.conf"

     

    ~ # ps | grep lighttpd
      843 root      6064 S    lighttpd -f /opt/etc/lighttpd/lighttpd.conf
     6936 root      5000 S    grep lighttpd


     

     

    smarthtml.cgi  smarthtml.sh

    Скрытый текст

    smart.thumb.jpg.14f59a6cac0c8aa9015bb78add203421.jpg

     

     

  13. 18 часов назад, Albram сказал:

    А если так:
    smartctl -a -d sat /dev/sda

    О как, завелось по-моему, странно почти все ключи перепробовал после -d, sat прошляпил, ответ смущает, Not in smartctl database [for details use: -P showall] - не помешает? 

    Скрытый текст
    
    ~ # smartctl -a -d sat /dev/sda
    
    smartctl 7.1 2019-12-30 r5022 [mips-linux-4.9-ndm-4] (localbuild)
    Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org
    
    === START OF INFORMATION SECTION ===
    Device Model:     WDC WD20EZRZ-00Z5HB0
    Serial Number:    WD-WCC4M0KZNY1D
    LU WWN Device Id: 5 0014ee 2103e03ff
    Firmware Version: 80.00A80
    User Capacity:    2,000,398,934,016 bytes [2.00 TB]
    Sector Sizes:     512 bytes logical, 4096 bytes physical
    Rotation Rate:    5400 rpm
    Device is:        Not in smartctl database [for details use: -P showall]
    ATA Version is:   ACS-2 (minor revision not indicated)
    SATA Version is:  SATA 3.0, 6.0 Gb/s (current: 6.0 Gb/s)
    Local Time is:    Fri Sep 18 14:55:26 2020 MSK
    SMART support is: Available - device has SMART capability.
    SMART support is: Enabled
    
    === START OF READ SMART DATA SECTION ===
    SMART overall-health self-assessment test result: PASSED
    
    General SMART Values:
    Offline data collection status:  (0x84) Offline data collection activity
                                            was suspended by an interrupting command from host.
                                            Auto Offline Data Collection: Enabled.
    Self-test execution status:      (   0) The previous self-test routine completed
                                            without error or no self-test has ever
                                            been run.
    Total time to complete Offline
    data collection:                (28320) seconds.
    Offline data collection
    capabilities:                    (0x7b) SMART execute Offline immediate.
                                            Auto Offline data collection on/off support.
                                            Suspend Offline collection upon new
                                            command.
                                            Offline surface scan supported.
                                            Self-test supported.
                                            Conveyance Self-test supported.
                                            Selective Self-test supported.
    SMART capabilities:            (0x0003) Saves SMART data before entering
                                            power-saving mode.
                                            Supports SMART auto save timer.
    Error logging capability:        (0x01) Error logging supported.
                                            General Purpose Logging supported.
    Short self-test routine
    recommended polling time:        (   2) minutes.
    Extended self-test routine
    recommended polling time:        ( 285) minutes.
    Conveyance self-test routine
    recommended polling time:        (   5) minutes.
    SCT capabilities:              (0x7035) SCT Status supported.
                                            SCT Feature Control supported.
                                            SCT Data Table supported.
    
    SMART Attributes Data Structure revision number: 16
    Vendor Specific SMART Attributes with Thresholds:
    ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
      1 Raw_Read_Error_Rate     0x002f   200   200   051    Pre-fail  Always       -       0
      3 Spin_Up_Time            0x0027   175   168   021    Pre-fail  Always       -       4233
      4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       618
      5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
      7 Seek_Error_Rate         0x002e   200   200   000    Old_age   Always       -       0
      9 Power_On_Hours          0x0032   098   098   000    Old_age   Always       -       1554
     10 Spin_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
     11 Calibration_Retry_Count 0x0032   100   100   000    Old_age   Always       -       0
     12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       523
    192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       56
    193 Load_Cycle_Count        0x0032   199   199   000    Old_age   Always       -       3930
    194 Temperature_Celsius     0x0022   115   102   000    Old_age   Always       -       32
    196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
    197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0
    198 Offline_Uncorrectable   0x0030   200   200   000    Old_age   Offline      -       0
    199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
    200 Multi_Zone_Error_Rate   0x0008   200   200   000    Old_age   Offline      -       0
    
    SMART Error Log Version: 1
    No Errors Logged
    
    SMART Self-test log structure revision number 1
    Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
    # 1  Short offline       Completed without error       00%      1115         -
    # 2  Short offline       Completed without error       00%       211         -
    
    SMART Selective self-test log data structure revision number 1
     SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
        1        0        0  Not_testing
        2        0        0  Not_testing
        3        0        0  Not_testing
        4        0        0  Not_testing
        5        0        0  Not_testing
    Selective self-test flags (0x0):
      After scanning selected spans, do NOT read-scan remainder of disk.
    If Selective self-test is pending on power-up, resume after 0 minute delay.

     

    Скрытый текст
    
    ~ # smartctl -d sat /dev/sda -l scttemp |grep Temperature
    
    Current Temperature:                    31 Celsius
    Power Cycle Min/Max Temperature:     28/39 Celsius
    Lifetime    Min/Max Temperature:     19/45 Celsius
    Under/Over Temperature Limit Count:   0/0
    SCT Temperature History Version:     2
    Temperature Sampling Period:         1 minute
    Temperature Logging Interval:        1 minute
    Min/Max recommended Temperature:      0/60 Celsius
    Min/Max Temperature Limit:           -41/85 Celsius
    Temperature History Size (Index):    478 (230)
    Index    Estimated Time   Temperature Celsius

     

     

  14. 2 часа назад, Albram сказал:

    А если так:
    smartctl -a /dev/sda

    Что будет в выводе?

    Скрытый текст
    
    ~ # smartctl -a /dev/sda
    smartctl 7.1 2019-12-30 r5022 [mips-linux-4.9-ndm-4] (localbuild)
    Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org
    
    /dev/sda: Unknown USB bridge [0x2109:0x0715 (0x000)]
    Please specify device type with the -d option.
    
    Use smartctl -h to get a usage summary

     

     

  15. Скрытый текст
    
    ~ # smartctl -a -d scsi /dev/sda
    smartctl 7.1 2019-12-30 r5022 [mips-linux-4.9-ndm-4] (localbuild)
    Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org
    
    === START OF INFORMATION SECTION ===
    Vendor:               WDC WD20
    Product:              EZRZ-00Z5HB0
    Revision:             80.0
    Compliance:           SPC-4
    User Capacity:        2,000,398,934,016 bytes [2.00 TB]
    Logical block size:   512 bytes
    Physical block size:  4096 bytes
    Serial number:        000000123AE3
    Device type:          disk
    Local Time is:        Wed Sep 16 21:29:32 2020 MSK
    SMART support is:     Available - device has SMART capability.
    SMART support is:     Disabled
    Temperature Warning:  Disabled or Not Supported
    
    === START OF READ SMART DATA SECTION ===
    SMART Health Status: OK
    Current Drive Temperature:     0 C
    Drive Trip Temperature:        0 C
    
    Error Counter logging not supported
    
    Device does not support Self Test logging

     

    Скрипт не заведется? 

  16. Приветствую всех, прошу не запинывать сразу тапками, новичок... 

    Использовал скрипт Geont ,все замечательно работает, пытался к нему приладить кусочек отвечающий за нотификации через Telegram, спотыкается, куда копнуть? Кусочек просто вставил в конец скрипта, так нельзя?  

    #!/opt/bin/sh
    
    ConnName=Rostelecom
    counter=/opt/tmp/CountReconnectWan.txt
    previp=/opt/tmp/previp.txt
    max_tries=10
    
    LIST=`ndmq -p 'show interface' -x | xml sel -t -m '//interface[link="up"][state="up"][global="yes"][defaultgw="yes"]' -v '@name' -o ',' -v 'description' -o ',' -v 'address' -o ',' -v 'via' -n`
    echo "$LIST" | grep -iwq "$ConnName" || exit 0
    
    _ip=`echo "$LIST" | cut -d, -f3`
    _prov=`echo "$LIST" | cut -d, -f2`
    _iface=`echo "$LIST" | cut -d, -f1`
    _via=`echo "$LIST" | cut -d, -f4`
    
    if echo "$_ip" | grep -qE "^(10\.|100\.6[4-9]\.|100\.[7-9][0-9]\.|100\.1[01][0-9]\.|100\.12[0-7]\.|172\.1[6-9]\.|172\.2[0-9]\.|172\.3[01]\.)"; then
        [ -f "$counter" ] || echo "0" > $counter
        try_nr=$(cat $counter)
        try_nr=$((++try_nr))
        if [ $try_nr -gt $max_tries ]; then
            echo "0" > $counter
    	logger -t white_ip[$$] "Provider: $_prov, interface: $_iface. Too much tries. Exit"
            exit
        fi
        echo "$try_nr" > $counter
        logger -t white_ip[$$] "Provider: $_prov, interface: $_iface. Reloading WAN due grey IP - $_ip. Try $try_nr of $max_tries."
        ndmq -p "interface $_iface no connect via $_via" -P message
        sleep 5
        ndmq -p "interface $_iface connect via $_via" -P message
    else
        echo "0" > $counter
        [ -f "$previp" ] || echo "0.0.0.0" > $previp
        _previp=$(cat $previp)
        if [ "$_previp" != "$_ip" ]; then
            logger -t white_ip[$$] "Provider: $_prov, interface: $_iface, white IP - $_ip."
            echo "$_ip" > $previp
        fi
    fi
    
       /opt/bin/tg_say.sh "Force reconnect to get real IP (try $try_nr of $max_tries)."
       echo "$try_nr" > $counter
       ndmq -p "no interface $interface connect"
       sleep 5  
       ndmq -p "interface $interface connect"
       echo '0' > $counter
    fi

     

×
×
  • Create New...