gvan
-
Posts
210 -
Joined
-
Days Won
2
Content Type
Profiles
Forums
Gallery
Downloads
Blogs
Events
Posts posted by gvan
-
-
В веб-интерфейсе самого кинетика (Keenetic Giga II) объемы дисков отображаются нормально:
Скрытый текстНо если запросить эти же данные через SNMP, то видим, что значения отрицательные
snmpwalk -c public 192.168.1.1 . > snmpwalk.txt:
Скрытый текст...
UCD-SNMP-MIB::dskIndex.1 = INTEGER: 1
UCD-SNMP-MIB::dskIndex.2 = INTEGER: 2
UCD-SNMP-MIB::dskIndex.3 = INTEGER: 3
UCD-SNMP-MIB::dskIndex.4 = INTEGER: 4
UCD-SNMP-MIB::dskPath.1 = STRING: /tmp/mnt/ADATA2/
UCD-SNMP-MIB::dskPath.2 = STRING: /tmp/mnt/c06bcc2a-e381-4443-887e-6abbf2b688b2/
UCD-SNMP-MIB::dskPath.3 = STRING: /tmp/mnt/ADATA/
UCD-SNMP-MIB::dskPath.4 = STRING: /tmp/mnt/facbe326-99b1-d101-f0c8-e32699b1d101/
UCD-SNMP-MIB::dskTotal.1 = INTEGER: -1411806976
UCD-SNMP-MIB::dskTotal.2 = INTEGER: -1411806976
UCD-SNMP-MIB::dskTotal.3 = INTEGER: 946167104
UCD-SNMP-MIB::dskTotal.4 = INTEGER: 946167104
UCD-SNMP-MIB::dskAvail.1 = INTEGER: -2091164928
UCD-SNMP-MIB::dskAvail.2 = INTEGER: -2091164928
UCD-SNMP-MIB::dskAvail.3 = INTEGER: 267273440
UCD-SNMP-MIB::dskAvail.4 = INTEGER: 267273440
UCD-SNMP-MIB::dskUsed.1 = INTEGER: 679357824
UCD-SNMP-MIB::dskUsed.2 = INTEGER: 679357824
UCD-SNMP-MIB::dskUsed.3 = INTEGER: 678893696
UCD-SNMP-MIB::dskUsed.4 = INTEGER: 678893696
...Возможно это связано с переполнением 32-битных счетчиков.
Использую SNMP для графического отображения статистики роутера (в т.ч. и подключенных дисков). Соответственно, для имеющегося диска на 3ТБ статистика отрисовывается некорректно (для диска на 1ТБ - проблема не фиксируется).
-
В 14.04.2022 в 18:08, usan сказал:
Спасибо за скрипт
Только установил Entware, и при выполнении скрипта вылезли ошибки:
ndmq: not found
Как выяснилось, пакет ndmq перенесен в архив и больше не входит в установку Entware, чтобы не устанавливать его из архива, я переделал скрипт на rci, изменения в строках 75, 104-105
Предварительно нужно установить пакет jq для разбора json
opkg install jq
Скрипт во вложении в архиве
Спасибо. Сам переустановил entware с нуля и тоже увидел, что пакт ndmq исчез.
Для тех, кто не захочет переходить на rci, можно установить ndmq из архива (у меня просто еще были скрипты на него завязаны):
opkg install curl curl https://bin.entware.net/mipselsf-k3.4/keenetic/archive/libndm_1.8.0-1_mipsel-3.4_kn.ipk >libndm.ipk opkg install libndm.ipk curl https://bin.entware.net/mipselsf-k3.4/keenetic/archive/ndmq_1.0.2-7_mipsel-3.4_kn.ipk > ndmq.ipk opkg install ndmq.ipk
- 1
-
58 минут назад, batonskij сказал:
папка bin присутствует, после окончания процесса она зачеркивается.
Я не знаю, что для морды означает зачеркнуто.
Больше пользы было бы от вывода команды ls, где видны права на уже распакованную папку bin. Возможно по какой-то причине они не проставляются должным образом.
-
В 29.04.2022 в 22:03, batonskij сказал:
Воспользовался вашим советом, использовал tar, но при восстановлении все-равно что-то идет не так
Можно почитать в инете мануал по tar и перед распаковкой проверить содержимое архива. Например, список файлов сохранить в текстовый файл и посмотреть есть ли в нем все необходимое. Или вообще через менеджер файлов midnight commander войти внутрь архива (будет очень долгий процесс) и "походить" по структуре каталалогов-файлов.
Да и смоневаюсь я, что при распаковке архива tar-ом у вас не высветилось ни одной ошибки, если "что-то идет не так".
-
В 26.04.2022 в 16:43, batonskij сказал:
нет, речь идет о штатном установщике OPKG пакетов
Но тогда это вообще мимо кассы. Фактически создаваемый скриптом архив не является пакетом OPKG. Каким образом архив обрабатывает бинарник opkg, и почему на архивах малого размера это срабатывало, мне неизвестно.
Соответственно, как и писал выше, для распаковки архива нужно использовать команду tar.
- 1
-
5 часов назад, batonskij сказал:
Жму кнопки в веб морде роутера и жду, обычно все в течении 4-5 мин разворачивается.
Мне добавить к предыдущему сообщению нечего. Видимо, вопрос нужно задать веб-морде и кнопкам😄
Я сам, когда пробовал восстанавливать архив, для распаковки использовал команду tar, как указано в инструкции на первой странице.
Про функционал в веб-морды, в котором это можно сделать, мне ничего неизвестно. Возможно речь идет о "Приложение-Файлы и папки"? Но тогда вопрос больше к разработчикам прошивки.
Полагаю, что при включении HA в архив его размер становится больше, и для обработки архива функционалом самой прошивки не хватает памяти.
-
В 23.04.2022 в 20:18, batonskij сказал:
Скриптом пользуюсь давно, все устраивало, но недавно заметил что невозможно восстановить при наличии в архиве Home Assistant. Что надо подправить?
Недостаточно информации. Сам бэкап отрабатыает задачу и ошибок нет? Что значит невозможно восстановить? Какая ошибка возникает?
-
Ну, вот. Ошибка в переменной $BACSTORDIR.
Она должна содержать полный путь к каталогу бэкапов. Т. е. начинаться со слэша.
-
Вы так и не показали свой скрипт. Или хотя бы чему у вас равна переменная $BACSTORDIR.
У меня именно такой скрипт, как я привел в примере. Предварительный переход в каталог команде find мешать никак не может. Да, наверно можно обойтись и без него.
-
Попробуйте, заменив переменные пути и времени хранения файлов реальными значениями, выполнить команду find из командной строки. Только уберите кавычки. Как выглядит команда в командной строке, и что выводится при ее выполнении?
Если понятнее не станет, выложите свой скрипт сюда.
-
14 часа назад, ale_xb сказал:
Хочу понять, зачем ставить cron из entaware? Разве crond из состава прошивки/busybox не достаточно для этого?
В первом сообщение есть примечание по cron (на момент написания сообщения). Если все устраивает и работает (задачи из crontab выполняются) с существующим cron, то необходимости в установке нет.
-
16 часов назад, Meccep45 сказал:
при отладке вроде без ошибок
Т.е.при ручном запуске/отладке вертит правильно (при достижении нужных критериев), но по крону не отрабатывает? Могу предположить, что нужно в основном файле crontab убрать комментарий для разрешения запуска почасовых задач (в первом сообщении темы об этом есть информация). А скрипт /opt/etc/cron.daily/logrotate просто также скопировать в cron.hourly (test.sh по сути не нужен).
-
3 часа назад, yrzorg сказал:
Можно попросить выложить файлом, а то здесь форматирование бъётся
Да, вижу, что кое-что побилось. Выкладываю файл backup.zip
- 3
-
10 минут назад, roma33region сказал:
подскажите как сделать чтоб сохранение бекампа было например на гугл диск
В рамках данного решения (скрипта) этого не предусмотрено. Посмотрите каталог готовых решений для opkg. Возможно, что-то найдете для копирования (переноса) данных на облачные сервисы. Например, упоминается rclone.
Соответственно, если получится его настроить, то в конец скрипта добавите необходимые строки для синхронизации локального каталога с бэкапами на облако.
-
В 29.01.2021 в 11:50, Le ecureuil сказал:
Ну как, на 10-й версии стало лучше?
Ну, у меня проблемы с установкой не было, поскольку стояла версия 2.16.D.7.0-1, а обновляться выше в свое время я не стал (когда увидел, что на Giga 2, у некоторых после 8 версии начались проблемы с кирпичами).
Как вышла 10 обновился успешно, правда только со второго раза. Первый раз после обновления осталась та же самая версия. Повторная установка 10 прошла нормально. 10-01 с первого раза без проблем поставилась.
-
9 часов назад, Equalizer сказал:
Коллеги, добрый день.
Ситуация следующая: имеем Keenetic Giga 2. С обновлениями до 2.16.D.8.0-0 проблем не было. 2.16.D.8.0-2 уронило систему и загнало роутер в бутлуп, восстановил прошивку с помощью рекавери. Думал, какой-то глюк. Благо, бэкапы наше всё. Вышло обновление 2.16.D.9.0-0, ситуация повторилась с небольшой разницей - роутер бесконечно моргает индикатором питания, после hard reset загорается лишь питание, порт 0 (от провайдера) и 1, куда воткнут шнур от компа. Опять же, вернуть к жизни помогает лишь рекавери и заливка 2.16.D.8.0-0 из бэкапа. В чём может быть проблема, у кого какие идеи?
Вот еще здесь посмотрите. Аналогичная проблема была у людей как с подключенным модемом, так и без него.
У самого Giga 2. Но почитав всё это, решил, что мне хорошо и на 2.16.D.7.0-1. Решил пока не обновляться.
-
12 часа назад, batonskij сказал:
Камрады подскажите почему скрипт бэкапит прошивку и конфиг странно? Конфиг в архиве и без и файл прошивки под разными именами.
Достаточно было почитать предыдущие сообщения. Комрады хотели (просили), чтобы предыдущие файлы прошивки не удалялись, а именовались по номеру прошивки и оставались на диске. Но по коду скрипта сама прошивка в архив вообще не кладется. Непонятно, почему у вас так происходит.
Что касается конфига, то его последняя версия кладется в файл -cur. Если были изменения от текущего его содержимого (а у вас, наверное, конфиг изменялся), старая версия конфига как раз перемещается в архив с датой.
Не исключаю, что где-то в скрипте есть баг и нарушена логика именования файлов. У меня например вот такое текущее содержимое каталога с бэкапами (конфиг давно не менялся):
Скрытый текст-rw-r--r-- 1 root root 12710 Oct 29 04:11 config-cur
-rw-r--r-- 1 root root 61940493 Oct 17 04:11 entware-2020-10-17.tgz
-rw-r--r-- 1 root root 61905163 Oct 18 04:11 entware-2020-10-18.tgz
-rw-r--r-- 1 root root 61900733 Oct 19 04:11 entware-2020-10-19.tgz
-rw-r--r-- 1 root root 62372808 Oct 20 04:11 entware-2020-10-20.tgz
-rw-r--r-- 1 root root 62372381 Oct 21 04:11 entware-2020-10-21.tgz
-rw-r--r-- 1 root root 62364753 Oct 22 04:11 entware-2020-10-22.tgz
-rw-r--r-- 1 root root 62357246 Oct 23 04:12 entware-2020-10-23.tgz
-rw-r--r-- 1 root root 61511681 Oct 24 04:11 entware-2020-10-24.tgz
-rw-r--r-- 1 root root 61622223 Oct 25 04:11 entware-2020-10-25.tgz
-rw-r--r-- 1 root root 61732790 Oct 26 04:11 entware-2020-10-26.tgz
-rw-r--r-- 1 root root 61726866 Oct 27 04:11 entware-2020-10-27.tgz
-rw-r--r-- 1 root root 61719782 Oct 28 04:11 entware-2020-10-28.tgz
-rw-r--r-- 1 root root 61741802 Oct 29 04:11 entware-2020-10-29.tgz
-rw-r--r-- 1 root root 12648508 Oct 22 04:11 firmware-2.16.D.6.0-1
-rw-r--r-- 1 root root 12648508 Oct 28 04:11 firmware-2.16.D.7.0-0
-rw-r--r-- 1 root root 12648508 Oct 29 04:12 firmware-2.16.D.7.0-1
-rw-r--r-- 1 root root 12648508 Oct 23 04:12 firmware-2020-10-23
-rw-r--r-- 1 root root 12648508 Oct 29 04:12 firmware-2020-10-29На всякий случай выкладываю полный код скрипта последней версии (в первом собщении изменить уже не могу):
Скрытый текст#!/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/ADATA/backup/ # Какие компоненты бэкапить (1|0) # Entware. Всегда сохраняется новая копия IsEnt=1 # Конфигурация роутера. Сохраняется копия, если были изменения в конфиге IsConf=1 # Прошивка. Создается резервная копия, если прошивка изменялась IsFirm=1 # Префикс для имени файла с бэкапом BACNAME=entware # Что архивировать BACDIR=/opt/ # Какие каталоги пропускать при бэкапе entware EXCLUDE=" tmp var/log share/nginx/html var/mysql " # При определении изменялся ли конфиг, не учитывать данные строки (через экраннированн[Kсимвол "Иm{И" -> "\|". # При сравнении копий конфига не учитываются служебные строки, начинающиеся на '! $$$', и с трока 'clock date', т.к. она обновляется при считывании конфига # m{учше не трогать :) EXCLCONFCMD='\! \$\$\$\|clock date' # Путь к резервной копии прошивки на USB FLASH. Определить в CLI по команде 'ls ?'. Обычно это мет ка диска в виде 'LABEL:/' BACFIRMDIR=ADATA:/backup/ # Сколько дней хранить бэкапы. DAYSTOR=12 #===================================================================================== # Начало скрипта #===================================================================================== # Текущая дата для формирования имени файла с архивом 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"
Можно переместить текущее содержимое бэкапов в другой каталог и проверить функционал по новой.
- 1
-
21 час назад, Orbit сказал:
find $BACSTORDIR -mtime +${DAYSTOR} -delete
А здесь поправить, чтоб файлы типа firmware-3.05.A.18.0-0 и тп вообще не удалялись.
Тоже несложно. Достаточно мануал на команду find посмотреть. Выглядететь будет примерно так:
find $BACSTORDIR -mtime +${DAYSTOR} -a ! -name 'firmware*' -delete
- 1
-
17 часов назад, Orbit сказал:
есть ли возможность сохранять прошивку с версией в названии файла, как это сейчас происходит при сохранении через веб?.
Это не сложно. Можно заменить блок кода в скрипте, где делается бэкап прошивки на код следующего вида:
Скрытый текст# Делаем архив прошивки 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
Ключевой элемент здесь - получение номера версии прошивки: REL=`ndmq -p 'show version' -P 'release'`
У себя код поменял. Вроде работает.
Отредактировать первое сообщение уже не могу. Так что меняйте, проверяйте и у себя.
- 2
-
В 11.09.2019 в 11:27, Le ecureuil сказал:
Вроде бы исправляли эту ситуацию.
В версии 2.16.D.1.0-0 Load Average нормализовался. Спасибо!
-
2 часа назад, Le ecureuil сказал:
Вроде бы исправляли эту ситуацию.
Драйвер serial tty в 2.12 перевели на polling вместо прерываний (из-за особенностей работы en751x), но потом должно было все стать нормально.
Нет, журнал изменений 2.13-2.15 читал регулярно. Упоминаний об исправлении не встречал. Проблема наблюдалась на всех версиях 2.13-2.16 (может, конечно, какие-то промежуточные версии и пропустил).
Также подтверждается на версии 2.16 на двух других Keenetic Giga II (их использую не я).
-
4 минуты назад, r13 сказал:
Думаю шанс нулевой, ибо на работу не влияет
Я понимаю. На работу не влияет, но графики статистики LA безбожно врут 😉
Уж очень хорошая и надежная "железка" получилась в виде Keenetic Giga II, которая верой и правдой служит уже несколько лет. Поэтому и хотелось окончательного фэншуя, т.к. в версии 2.12 LA работал, как и задумано.
Но нет, так нет. Если исправляющую "затычку" для данного типа устройств сделать сложно, то значит не судьба...
-
Баг тянется еще с версии 2.13. Судя по сообщениям в предыдущей теме, характерен только Keenetic Giga II и Keenetic II (устройства на 6856). На 2.16.D.0.0-0 также присутствует.
Если смотреть загрузку Load Average (через SNMP или команду top в entware), то она всегда будет больше 1. Хотя, если при этом смотреть загрузку CPU (через веб-интерфейс или SNMP), то она будет околонулевая. Соответственно, и LA также должен быть невысоким (меньше 1). Но это не так.
Насколько я понял, это фактически последний шанс исправить данный баг в прошивке 2.16 для снятых с поддержки устройств...
-
27 минут назад, Алексей Саратовский сказал:
то есть должно одновременно всё быть: и обновление messages и ротация в той же папке, верно?
И скажите, пожалуйста, именно по вашей теме - я всё верно сделал (скрин выше)?
Ротация никакого отношения к обновлению логов не имеет. Ее задача правильно перенести/архивировать файлы журналов.
На скрине выше вообще непонятно, что вы там настроили.
Повторюсь. Если у вас перестали обновляться логи, что ротация здесь не причем (за исключением уж совсем клинических случаев).
Сначала разберитесь с обновлением логов и добейтесь того, чтобы данные в них писались. Удалите пакет logrotate и скрипт /opt/etc/cron.daily/logrotate, перезапустите роутер, проверьте данные.
Периодическое резервное копирование entware, конфига и прошивки
in Каталог готовых решений Opkg
Posted
В текстовом формате. Только не забыть установить потом на скрипт права исполняемого файла.