lascorpio Posted August 24, 2021 Posted August 24, 2021 (edited) Добрый день. Стоит задача раз в сутки менять пароль гостевой вай-фай сети. Пароль генерируется автоматически и состоит из 8ми цифр. До этого был тплинк на опен-врт и там это решалось через VBS-скрипт на ПК, который закидывался в планировщик Windows. Скрипт генерировал пароль, записывал пароль в хтмл-файл и загружал его на фтп-сервер, откуда им мог воспользоваться определенный круг лиц. Затем скрипт стучался в роутер по ssh, менял там пароль на вновь сгенерированный и перезагружал вай-фай, выглядело это примерно так: ssh root@192.168.100.1 uci set wireless.@wifi-iface[0].key=$pass ssh root@192.168.100.1 uci commit ssh root@192.168.100.1 wifi down radio0 ssh root@192.168.100.1 wifi up radio0 Сейчас перешел на Giga SE, писал в поддержку кинетика, там мне сказали, что нативно ничего подобного реализовать не получится и посоветовали обратиться сюда. Соответственно, обращаюсь. В идеале мне интересен вариант, когда бы все операции целиком исполнялись на роутере, без участия ПК, т.е. роутер бы генерил пароль, менял его и где-то публиковал. Возможно ли это сделать, и как? Готов заплатить за рабочее решение, если это не слишком сложно и дорого. П.С. Уточню, что сервисы авторизации по смс для моих задач не подходят. Edited August 24, 2021 by lascorpio 1 Quote
vadimbn Posted August 24, 2021 Posted August 24, 2021 7 часов назад, lascorpio сказал: Стоит задача раз в сутки менять пароль гостевой вай-фай сети Как вариант - ставим компонент "Сервер SSH" устанавливаем приложение Putty plink, так как к сожалению компонент не поддерживает авторизацию по ключу команда в скрипте выглядит примерно так plink 192.168.100.1 -P 22 -l admin -pw YourAdminPassword -batch "interface GuestWiFi authentication wpa-psk 'test23445556'" -P - порт, если стандартный, 22, можно не указывать -l - пользователь (не root, а admin) -pw - пароль -batch - подавляет интерактивные запросы "interface GuestWiFi authentication wpa-psk 'test23445556'" - команда CLI, меняющая пароль сети Wi-Fi. Если на роутер установлен Entware, то вместо штатного dropbear можно установить пакет openssh-server, он поддерживает авторизацию по ключу. В этом случае компонент "Сервер SSH" устанавливать не надо. Но в entware надо установить пакет ndmq, это приложение, которое позволяет вводить команды CLI (для процессоров ARM64 пока не работает). ssh root@192.168.100.1 ndmq "interface GuestWiFi authentication wpa-psk 'test23445556'" В entware пользователь именно root. Quote
vadimbn Posted August 25, 2021 Posted August 25, 2021 Dropbear тоже поддерживает авторизацию по ключам, но файл authorized_keys при этом должен лежать в директории /opt/etc/dropbear. Проще всего в Entware сделать симлинк файла /opt/root/.ssh/authorized_keys в директорию /opt/etc/dropbear ln -s /opt/root/.ssh/authorized_keys /opt/etc/dropbear После чего можно давать команды используя ssh. Quote
vasek00 Posted August 25, 2021 Posted August 25, 2021 13 часа назад, lascorpio сказал: Сейчас перешел на Giga SE, писал в поддержку кинетика, там мне сказали, что нативно ничего подобного реализовать не получится и посоветовали обратиться сюда. Соответственно, обращаюсь. В идеале мне интересен вариант, когда бы все операции целиком исполнялись на роутере, без участия ПК, т.е. роутер бы генерил пароль, менял его и где-то публиковал. Возможно ли это сделать, и как? Необходимо Entware, можно во внутреннюю память + ndmq + cron. В итоге рассмотрите вариант : Скрытый текст Wifi 2.4 (config)> interface WifiMaster0/AccessPoint0 authentication wpa-psk Eethaich9z Network::Interface::Wifi: "WifiMaster0/AccessPoint0": WPA PSK set. (config)> system configuration save Core::System::Configuration: Saving (cli). (config)> В WEB это будет на роутере это / # ndmq -p "interface WifiMaster0/AccessPoint0 authentication wpa-psk Eethaich9z" -x <response> <message code="73335684" ident="Network::Interface::Wifi" source="" warning="no"> "WifiMaster0/AccessPoint0": WPA PSK set. </message> <prompt>(config)</prompt> </response> / # или / # ndmq -p "interface WifiMaster0/AccessPoint0 authentication wpa-psk Eethaich9z" / # Далее прописать в нужное время в cron. Пароль можно брать из готового файла в котором будет просто строки 1234567890 1234567891 1234567892 1234567893 1234567894 1234567895 1234567896 ... По мере использования первую строку можно удалить. Или случайный набор символов каждый раз можно брать из / # date | md5sum 94e002e481f677975dda2f2c7bde102d - / # урезав его чуток Или найти в интернете генерация пароль по проще. Quote
vadimbn Posted August 25, 2021 Posted August 25, 2021 В 24.08.2021 в 22:56, lascorpio сказал: т.е. роутер бы генерил пароль, менял его и где-то публиковал. Ставим и настраиваем OPKG Заходим по SSH, ставим три пакета opkg install cron ndmq mc FTP-сервер по вкусу, можно из коробки, можно из entware. Как по мне - так тот, что из компонента "FTP-сервер" удобнее, можно пользователей заводить в интерфейсе роутера. Пишем скрипт mcedit ./pw_gen Скрипт может быть примерно такой #!/bin/sh # Options FTP_DIR="/your/ftp/directory" FILE_PASSWORD="password" # Generate a pasword PASSWD_GEN=`dd if=/dev/urandom bs=16 count=1 oflag=direct|sha256sum|cut -c 1-8` # Put password to file echo $PASSWD_GEN > $FTP_DIR/$FILE_PASSWORD # Change WPA-PSK key ndmq -p "interface GuestWiFi authentication wpa-psk $PASSWD_GEN" делаем скрипт исполняемым и помещаем его в директорию cron.daily (пакет cron установили выше) cp ./pw_gen /opt/etc/cron.daily chmod 755 /opt/etc/cron.daily По поводу каталога /your/ftp/directory. Если в качестве FTP-сервера используется компонент "FTP-сервер" Флэшку, или диск подключенный к роутеру, можно разбить на два раздела. Один под Entware, второй под файлы. Оба раздела будут видны из Entware, но только один из них будет доступен простым пользователям по FTP - тот, что отведен под файлы. Оба раздела монтируются в файловой системе роутера в директорию /tmp/mnt в виде, например, таком /tmp/mnt/f612ceca-4826-45a6-af92-2ba3aa33ea77 /tmp/mnt/cd6ba69a-d125-4624-8bea-f4d80a2d5343 Под OPKG, допустим, выделен раздел /tmp/mnt/f612ceca-4826-45a6-af92-2ba3aa33ea77, тогда /your/ftp/directory будет /tmp/mnt/cd6ba69a-d125-4624-8bea-f4d80a2d5343, то есть # Options FTP_DIR=/tmp/mnt/cd6ba69a-d125-4624-8bea-f4d80a2d5343 1 Quote
lascorpio Posted August 27, 2021 Author Posted August 27, 2021 спасибо большое за ответы! особенно за последний вариант, на днях найду время, переварю полученную информацию, постараюсь реализовать, заранее извиняюсь, если приду с тупыми вопросами (= Quote
Александр Рыжов Posted August 29, 2021 Posted August 29, 2021 От deprecated XML-интерфейса, и, в частности ndmq лучше отучаться, в новых инсталляционных пакетах ndmq больше не будет, хотя утилита всё ещё доступна в пакетах. По возможности переходите на REST core interface, пример: wget --post-data='[{"opkg": {"initrc": {"path": "/opt/etc/init.d/rc.unslung", "no": false}}},{"system": {"configuration": {"save": true}}}]' http://127.0.0.1:79/rci/ -qO - Quote
lascorpio Posted September 5, 2021 Author Posted September 5, 2021 В 25.08.2021 в 23:21, vadimbn сказал: opkg install cron ndmq mc ndmq не ставит, говорит пакет на найден. Так понимаю, его выпилили? Как установить теперь? Quote
Александр Рыжов Posted September 5, 2021 Posted September 5, 2021 34 минуты назад, lascorpio сказал: ndmq не ставит, говорит пакет на найден. Так понимаю, его выпилили? Как установить теперь? Любые пакеты, когда-либо существовавшие в репозитории, можно найти в папке archive: opkg install http://bin.entware.net/mipselsf-k3.4/keenetic/archive/libndm_1.1.15-1_mipsel-3.4_kn.ipk opkd install http://bin.entware.net/mipselsf-k3.4/keenetic/archive/ndmq_1.0.2-7_mipsel-3.4_kn.ipk А вообще надо отучаться постепенно отучаться от ndmq, причина выше. Quote
lascorpio Posted September 5, 2021 Author Posted September 5, 2021 (edited) спасибо. Правда у меня mips, а не mipsel (но я вроде разобрался, установил) Edited September 5, 2021 by lascorpio Quote
lascorpio Posted September 5, 2021 Author Posted September 5, 2021 В 25.08.2021 в 23:21, vadimbn сказал: делаем скрипт исполняемым и помещаем его в директорию cron.daily (пакет cron установили выше) Спасибо, кажется всё получилось, но в какое время отрабатывает крон-дэйли и как это настроить? Например мне нужно, чтоб скрипт отрабатывал в 10 утра. В 25.08.2021 в 23:21, vadimbn сказал: # Generate a pasword PASSWD_GEN=`dd if=/dev/urandom bs=16 count=1 oflag=direct|sha256sum|cut -c 1-8` Как сделать генератор, который будет только из чисел пароль 8-символьный формировать? Quote
vadimbn Posted September 5, 2021 Posted September 5, 2021 (edited) 1 час назад, lascorpio сказал: Например мне нужно, чтоб скрипт отрабатывал в 10 утра. добавить в /opt/etc/crontab строчку 00 10 * * * root /path/to/your/script/pw_gen /path/to/your/script заменить на путь до вашего скрипта, разумеется. Потом дать команду /opt/etc/init.d/S10cron restart 1 час назад, lascorpio сказал: Как сделать генератор, который будет только из чисел пароль 8-символьный формировать? Хм... Ну, например, удалим из строчки хеша sha256 все буквы. А дополнительно возьмем хеш не sha256, а sha512 PASSWD_GEN=`dd if=/dev/urandom bs=512 count=1 oflag=direct|sha512sum|sed 's~[^[:digit:]/]\+~~g'|cut -c 1-8` Edited September 5, 2021 by vadimbn 1 Quote
vadimbn Posted September 5, 2021 Posted September 5, 2021 4 часа назад, Александр Рыжов сказал: А вообще надо отучаться постепенно отучаться от ndmq, причина выше. Вот знать бы еще полные пути формирования этих rci-запросов. Документация по ним есть? Вот например, команда wget -qO - --post-data='[{"encryption":{"wpa":true}}]' localhost:79/rci/interface/GuestWiFi работает. По логике вещей должна формироваться так же и команда смены wpa-psk-ключа wget -qO - --post-data='[{"authentication":{"wpa-psk":"Password"}}]' localhost:79/rci/interface/GuestWiFi Но судя по wget -qO - localhost:79/rci/show/interface в Wi-Fi-интерфейсах вообще нет свойства "autentication" или "wpa-psk". Quote
lascorpio Posted September 5, 2021 Author Posted September 5, 2021 Спасибо! Так понимаю, проверить отработает ли планировщик можно будет уже завтра в 10 утра? На текущий момент crontab выглядит так: SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/bin:/opt/sbin MAILTO="" HOME=/ # ---------- ---------- Default is Empty ---------- ---------- # */1 * * * * root /opt/bin/run-parts /opt/etc/cron.1min */5 * * * * root /opt/bin/run-parts /opt/etc/cron.5mins 01 * * * * root /opt/bin/run-parts /opt/etc/cron.hourly 02 4 * * * root /opt/bin/run-parts /opt/etc/cron.daily 22 4 * * 0 root /opt/bin/run-parts /opt/etc/cron.weekly 42 4 1 * * root /opt/bin/run-parts /opt/etc/cron.monthly 00 10 * * * root /opt/etc/cron.daily не спорит ли строчка 02 4 * * * root /opt/bin/run-parts /opt/etc/cron.daily с последней добавленной строкой? Quote
vadimbn Posted September 5, 2021 Posted September 5, 2021 (edited) 20 минут назад, lascorpio сказал: не спорит ли строчка у вас скрипт, который вы написали, называется cron.daily? И находится в /opt/etc? Если стоит задача всё, что есть в директории /opt/etc/cron.daily запускать в 10:00 каждый день, надо править ту строчку, что выше, "00 10 * * * root /opt/bin/run-parts /opt/etc/cron.daily" Но лучше этого не делать, скрипт поместить куда-нибудь, например в "/opt/root/", а последнюю строчку сделать такой "00 10 * * * root /opt/root/pw_gen" И не забудьте перезапустить сервис cron. /opt/etc/init.d/S10cron restart Edited September 5, 2021 by vadimbn 1 1 Quote
lascorpio Posted September 5, 2021 Author Posted September 5, 2021 31 минуту назад, vadimbn сказал: у вас скрипт, который вы написали, называется cron.daily? И находится в /opt/etc? да, понял свою ошибку ) 32 минуты назад, vadimbn сказал: Если стоит задача всё, что есть в директории /opt/etc/cron.daily запускать в 10:00 каждый день, надо править ту строчку, что выше, "00 10 * * * root /opt/bin/run-parts /opt/etc/cron.daily" Но лучше этого не делать, скрипт поместить куда-нибудь, например в "/opt/root/", а последнюю строчку сделать такой "00 10 * * * root /opt/root/pw_gen" я скрипт поместил в cron.daily как вы выше рекомендовали 🙂 ок, перенесу в root, спасибо. 33 минуты назад, vadimbn сказал: И не забудьте перезапустить сервис cron. первый раз когда исполнил эту команду cron просто запустился, т.е. он не был запущен, уже при повторном выполнении произошел перезапуск. Отсюда вопрос - он сам будет запускаться? Например при ребуте роутера? П.С. еще не подскажите как мне в файл с паролем добавить хтмл-разметку, чтоб сделать пароль крупным шрифтом и посередине? Например для вывода его на экран. Quote
vadimbn Posted September 5, 2021 Posted September 5, 2021 1 час назад, lascorpio сказал: Отсюда вопрос - он сам будет запускаться? Например при ребуте роутера? Конечно. Все сервисы, скрипты автозапуска которых помещаются в /opt/etc/init.d запускаются с каждым перезапуском роутера. 1 час назад, lascorpio сказал: не подскажите как мне в файл с паролем добавить хтмл-разметку, чтоб сделать пароль крупным шрифтом и посередине? echo "<html><head><title>Password for my guest WiFi</title></head><body><h1>Password for my WiFi is $PASSWD_GEN</h1></body></html>" > $FTP_DIR/$FILE_PASSWORD 1 Quote
Александр Рыжов Posted September 6, 2021 Posted September 6, 2021 11 час назад, vadimbn сказал: Вот знать бы еще полные пути формирования этих rci-запросов. Документация по ним есть? Есть в справочнике CLI. Но можно и без справочника: открыть по F12 отладчик в браузере и выполнить нужную команду в веб-интерефейсе. Quote
lascorpio Posted September 6, 2021 Author Posted September 6, 2021 (edited) сегодня утром пароль не изменился, не обновился файл с паролем, в логах вот так: Цитата [I] Sep 6 10:00:01 cron[1585]: (root) CMD (/opt/root/pw_gen) [I] Sep 6 10:00:01 cron[1583]: (root) CMD (/opt/bin/run-parts /opt/etc/cron.1min^I) [I] Sep 6 10:00:01 cron[1584]: (root) CMD (/opt/bin/run-parts /opt/etc/cron.5mins^I) вроде бы следует, что скрипт запустился? Однако ничего не получилось. Если вручную обработать скрипт - всё работает. crontab: SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/bin:/opt/sbin MAILTO="" HOME=/ # ---------- ---------- Default is Empty ---------- ---------- # */1 * * * * root /opt/bin/run-parts /opt/etc/cron.1min */5 * * * * root /opt/bin/run-parts /opt/etc/cron.5mins 01 * * * * root /opt/bin/run-parts /opt/etc/cron.hourly 02 4 * * * root /opt/bin/run-parts /opt/etc/cron.daily 22 4 * * 0 root /opt/bin/run-parts /opt/etc/cron.weekly 42 4 1 * * root /opt/bin/run-parts /opt/etc/cron.monthly 00 10 * * * root /opt/root/pw_gen Edited September 6, 2021 by lascorpio Quote
vadimbn Posted September 6, 2021 Posted September 6, 2021 24 минуты назад, lascorpio сказал: Если вручную обработать скрипт - всё работает. А если так - 00 10 * * * root /opt/bin/sh /path/to/your/script/pw_gen ? Только не ждите 10 часов следующего дня, время измените в файле /opt/etc/cron, на "через 2 минуты после текущего" и перезапустите cron. 1 Quote
Александр Рыжов Posted September 6, 2021 Posted September 6, 2021 2 часа назад, lascorpio сказал: Если вручную обработать скрипт - всё работает. Если вручную скрипт работает, а в cron'е — нет, то скорее всего дело в среде выполнения: наличия переменных, порядка путей в $PATH и т.п. Quote
lascorpio Posted September 6, 2021 Author Posted September 6, 2021 4 часа назад, vadimbn сказал: А если так - 00 10 * * * root /opt/bin/sh /path/to/your/script/pw_gen ? Только не ждите 10 часов следующего дня, время измените в файле /opt/etc/cron, на "через 2 минуты после текущего" и перезапустите cron. у меня нет файла cron по указанному пути, я просто закинул скрипт в cron.1min, на всякий перезапустил cron - не работает. 2 часа назад, Александр Рыжов сказал: Если вручную скрипт работает, а в cron'е — нет, то скорее всего дело в среде выполнения: наличия переменных, порядка путей в $PATH и т.п. я просто вручную исполняю команды из скрипта в консоли, если надо протестить целиком скрипт - подскажите, плз, команду, как его запустить из консоли. сам скрипт: FTP_DIR="/tmp/mnt/0D64-1511" FILE_PASSWORD="password.html" PASSWD_GEN=`dd if=/dev/urandom bs=512 count=1 oflag=direct|sha512sum|sed 's~[^[:digit:]/]\+~~g'|cut -c 1-8` echo "<br><br><br><br><h1 style=text-align:center;><strong>$PASSWD_GEN</strong></h1>" > $FTP_DIR/$FILE_PASSWORD ndmq -p "interface GuestWiFi authentication wpa-psk $PASSWD_GEN" добавлял его так, как советовал выше vadimbn: mcedit ./pw_gen затем пишем скрипт, сохраняем и: cp ./pw_gen /opt/etc/cron.1min chmod 755 /opt/etc/cron.1min Quote
lascorpio Posted September 6, 2021 Author Posted September 6, 2021 я всё настраиваю из клиента Termius на iPad, может быть он как-то не так сам скрипт сохраняет, кодировку там? Quote
vadimbn Posted September 6, 2021 Posted September 6, 2021 Во первых, там, в скрипте, первая строчка не просто так стоит #!/bin/sh Это то приложение, которое выполняет директивы, прописанные в скрипте. Она должна быть в первой строке скрипта. Но она должна быть такой - #!/opt/bin/sh Прямо как есть, так и вставьте в скрипт. В первую строчку. Во вторых, если скрипт у вас лежит в /opt/root, и называется pw_gen, то исполняемым его делает команда chmod 755 /opt/root/pw_gen Эта команда меняет атрибуты файла, делая его исполняемым для всех, доступным для чтения и записи владельцу, и только для чтения - всем остальным. После этих двух пунктов скрипт можно выполнить прямо в командной строке, вот так /opt/root/pw_gen Как обычную команду, и он будет исполняться. 2 Quote
lascorpio Posted September 7, 2021 Author Posted September 7, 2021 Спасибо вам, кажется всё получилось, по-крайней в папке cron.1min скрипт сейчас исполняется как надо, раз в минуту )) Посмотрим сработает ли сегодня в 10 утра, пока оставил строчку в crontab прежней: 00 10 * * * root /opt/root/pw_gen думаю проблема была в: #!/opt/bin/sh потому что всё остальное я вроде делал правильно - и права выставлял и #!/bin/sh писал в начале скрипта (это уже под конец решил попробовать без нее, когда идеи кончились). Может конечно где-то и накосячил, но в общем сейчас пока всё заколосилось, так что не трогаю )) Quote
vadimbn Posted September 7, 2021 Posted September 7, 2021 29 минут назад, lascorpio сказал: Посмотрим сработает ли сегодня в 10 утра Если не сработает, можно поместить в /opt/etc/cron.d текстовый файл, например, pw_gen.cron, со строкой 00 10 * * * /opt/root/pw_gen 1 Quote
lascorpio Posted September 8, 2021 Author Posted September 8, 2021 Всё заколосилось, пароль поменялся с утра. Потестирую еще в течение недели, посмотрю как всё будет работать, попробую роутер повыключать и т.д. Ещё вопросец - сейчас всё крутится на флешке, но так понимаю entware можно и во внутренней памяти развернуть - будут ли какие-то нюансы по работе скрипта без флешки? ФТП-сервер во внутреннюю память будет писать файл с паролем? И насколько можно считать эту задачу износоёмкой по отношению к ресурсу nand-памяти (или там eMMC?)? Quote
vadimbn Posted September 8, 2021 Posted September 8, 2021 2 часа назад, lascorpio сказал: но так понимаю entware можно и во внутренней памяти развернуть - будут ли какие-то нюансы по работе скрипта без флешки? Во всех устройствах, кроме Peak, этой самой памяти маловато. И будет ли доступ по FTP к этой памяти - скорее всего надо будет ставить FTP-сервер из entware. Кстати, если на выходе получается html-файл, то вместо FTP-сервера можно поставить HTTP-сервер, например, lighthttpd, с авторизацией. 2 часа назад, lascorpio сказал: И насколько можно считать эту задачу износоёмкой по отношению к ресурсу nand-памяти (или там eMMC?)? Пишет оно каждый день, но мало. Если не писать никакие логи, то вряд ли будет сильный износ. Quote
vasek00 Posted September 9, 2021 Posted September 9, 2021 (edited) 10 часов назад, vadimbn сказал: Во всех устройствах, кроме Peak, этой самой памяти маловато. Во внутренней памяти развернуто Entware, вопрос только в сервисах которые необходимы. Скрытый текст /opt/etc/init.d # df Filesystem 1K-blocks Used Available Use% Mounted on /dev/root 21504 21504 0 100% / tmpfs 62316 0 62316 0% /dev tmpfs 62316 464 61852 1% /tmp ubi0_0 56540 18844 34772 35% /storage ubi0_0 56540 18844 34772 35% /opt /opt/etc/init.d # opkg list-installed busybox - 1.31.1-6 cron - 4.1-3 dropbear - 2020.81-1 entware-release - 1.0-2 findutils - 4.7.0-2 glib2 - 2.66.1-1 grep - 3.6-1 hdparm - 9.60-1 htop - 3.0.2-1 ip-bridge - 4.4.0-10a iperf3 - 3.9-1 iptables - 1.4.21-3 jsonfilter - 2018-02-04-c7e938d6-1 ldconfig - 2.27-11 libattr - 2.4.48-2 libblkid - 2.36-2 libc - 2.27-11 libexslt - 1.1.34-2 libffi - 3.3-2 libgcc - 8.4.0-11 libiconv-full - 1.11.1-4 libintl-full - 0.19.8.1-2 libjson-c - 0.15-1 libmbedtls - 2.16.8-1 libmnl - 1.0.4-2 libmount - 2.36-2 libncurses - 6.2-1 libncursesw - 6.2-1 libndm - 1.1.15-1 libnl-tiny - 2020-08-05-c291088f-1 libopenssl - 1.1.1h-1 libpcap - 1.10.0-1 libpcre - 8.44-2 libpthread - 2.27-11 librt - 2.27-11 libslang2 - 2.3.2-4 libssh2 - 1.9.0-2 libssp - 8.4.0-11 libstdcpp - 8.4.0-11 libubox - 2020-08-06-9e52171d-1 libuuid - 2.36-2 libuv - 1.40.0-1 libxml2 - 2.9.10-2 libxslt - 1.1.34-2 locales - 2.27-9 mc - 4.8.25-1 ndmq - 1.0.2-7 netdata - 1.26.0-1 openssh-sftp-server - 8.4p1-1 opkg - 2020-11-24-61b3c62d-1 opt-ndmsv2 - 1.0-12a poorbox - 1.31.1-3 tcpdump - 4.9.3-3 terminfo - 6.2-1 ubi-utils - 2.1.2-1 xmlstarlet - 1.6.1-1 zlib - 1.2.11-3 zoneinfo-asia - 2020d-1 zoneinfo-europe - 2020d-1 /opt/etc/init.d # Рассмотрите вариант рассылки SMS Edited September 9, 2021 by vasek00 Quote
Art-9 Posted September 9, 2021 Posted September 9, 2021 13 часа назад, lascorpio сказал: И насколько можно считать эту задачу износоёмкой по отношению к ресурсу nand-памяти (или там eMMC?)? Как правило nand в роутерах это SLC со 100 тыс. циклов записи. Узнать точно что за модель NAND можно открыв self-test (или dmesg после перезагрузке в консоли), в поиск вписать NAND chip found 1 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.