Rezdbic Posted July 27, 2016 Share Posted July 27, 2016 Использую скрипт тов. S_A В журнале теперь такая ошибка: Jul 27 11:27:59ndm Opkg::Manager: /opt/etc/ndm/wan.d/white_ip.sh: /opt/etc/ndm/wan.d/white_ip.sh: line 29: syntax error: unexpected end of file (expecting "fi"). Jul 27 11:27:59ndm Opkg::Manager: /opt/etc/ndm/wan.d/white_ip.sh: exit code 2 Bash совсем не знаю. Что ему не хватает? Quote Link to comment Share on other sites More sharing options...
Александр Рыжов Posted July 27, 2016 Share Posted July 27, 2016 (edited) Ясно, интересует выбранное имя скрипта, а не имя папки. Имя может быть произвольное. Я пробовал называть скрипты 001-xxx.sh, 002-yyy.sh и т.д., пытаясь добиться их последовательного исполнения, но в момент проведение эксперимента скрипты выполнялись в произвольном порядке. 7 минут назад, Rezdbic сказал: Bash совсем не знаю. Что ему не хватает? Ему не хватает вашего понимания в происходящем. Невозможно зажмурившись выполнить чей-то скрипт, чтобы всё заработало. Придётся разбираться в том, что вы делаете. Edited July 27, 2016 by Александр Рыжов Quote Link to comment Share on other sites More sharing options...
Rezdbic Posted July 27, 2016 Share Posted July 27, 2016 Предлагаете мне выучить Bash?)) Спасибо, я лет 5 назад пробовал это сделать, ни чего не вышло, не понимаю я этого... (( Quote Link to comment Share on other sites More sharing options...
Khaninea Posted July 27, 2016 Author Share Posted July 27, 2016 Убери пустые строки, после предпоследнего fi поставь ";" 1 Quote Link to comment Share on other sites More sharing options...
Александр Рыжов Posted July 27, 2016 Share Posted July 27, 2016 @Rezdbic, никто не заинтересован в решении _вашей_ проблемы больше _вас_ самих. И тем более, никто не станет вести безвозмездные курсы bash'а. Попробуйте перевести сообщение об ошибке в переводчике. 1 Quote Link to comment Share on other sites More sharing options...
Rezdbic Posted July 27, 2016 Share Posted July 27, 2016 Это и без переводчика понятно: линия 29: синтаксическая ошибка: неожиданный конец файла (ожидается "f") 8 минут назад, Khaninea сказал: Убери пустые строки, после предпоследнего fi поставь ";" убрал, поставил... точно такая же ошибка, но в линии 20 Quote Link to comment Share on other sites More sharing options...
Khaninea Posted July 27, 2016 Author Share Posted July 27, 2016 Очень жалко, что уважаемые кураторы форума болеют звездной болезнью. Сам очень долго мучался, чтоб настроить скрипт. В итоге выкладываю рабочий вариант. Также у меня настроена нотификация через email посредством msmtp (есть соответсвующая тема на форумах). Mymail@mail.ru это пример, свой адрес не указываю по понятным причинам. Если уведомления не нужны, просто закомментируйте соответсвующие строчки. 010-rostel.sh 2 1 Quote Link to comment Share on other sites More sharing options...
Jameson Posted July 27, 2016 Share Posted July 27, 2016 кстати, после подключения их услуги IPTV у меня стало рвать соединение не раз в сутки а раз в две недели. Quote Link to comment Share on other sites More sharing options...
S_A Posted July 27, 2016 Share Posted July 27, 2016 (edited) Тут уже кто-то писал про if-fi,потом удалил сообщение. Насколько помню, проблема была в виндовых окончаниях строк. Проверьте не попали ли у вас 0x0d или другие спец символы в скрипт. Можно для начала просто через dos2unix конвертнуть. Edited July 27, 2016 by S_A Quote Link to comment Share on other sites More sharing options...
Rezdbic Posted July 27, 2016 Share Posted July 27, 2016 Я писал, сообщение не удалял, проблему решил. Пока работаю на вашем скрипте. Спасибо! Quote Link to comment Share on other sites More sharing options...
S_A Posted July 27, 2016 Share Posted July 27, 2016 По-моему все-таки не вы (месяц назад дело было, не помню). Да и поделились бы своим решением для других. Т.к. у меня например, скрипт успешно работает именно в том виде как я его выложил. Quote Link to comment Share on other sites More sharing options...
Rezdbic Posted July 27, 2016 Share Posted July 27, 2016 Кстати, к Вам как к автору скрипта есть вопрос ) Зачем в конце скрипта стоят две закомментированные строки? #sleep 1 #ndmq -p 'interface PPPoE0 dyndns update force' -P message Quote Link to comment Share on other sites More sharing options...
S_A Posted July 27, 2016 Share Posted July 27, 2016 Ну очевидно же , сначала добавил форсированный апдейт полученного IP в dyndns, потом проверил что роутер все-таки пошлет его сам после включения сервиса dyndns и закоментировал. Хотя кто-то с 2.07 жаловался что после включения апдейт не шлется. Вот в такой ситуации можно раскоментировать. Quote Link to comment Share on other sites More sharing options...
Khaninea Posted July 27, 2016 Author Share Posted July 27, 2016 Апдейт шлется где-то через пару минут. А если раскоментировать строку, то тогда вообще нет смысла сначала выключать, а потом включать dyndns, т.к. ip будет отсылаться после каждого сброса, в т.ч. и неудачного Quote Link to comment Share on other sites More sharing options...
S_A Posted July 27, 2016 Share Posted July 27, 2016 3 минуты назад, Khaninea сказал: Апдейт шлется где-то через пару минут В моем случае было не так, т.е. сразу. Зачем отключать, я писал на первой странице. Но согласен, прошивки обновляются, логика может меняться. Quote Link to comment Share on other sites More sharing options...
SoNick Posted July 27, 2016 Share Posted July 27, 2016 (edited) У меня была ошибка (expecting "fi") проблема оказалась в кодировке. Нужно было файл сохранять не в формате win-1251, а в формате unix-1251. Вот скрипт S_A нормально работающий у меня. Только у меня серая подсеть начинается на 172 white-ip.sh Edited July 27, 2016 by SoNick Quote Link to comment Share on other sites More sharing options...
Rezdbic Posted July 27, 2016 Share Posted July 27, 2016 (edited) Простите за нубство, но чем и как сохранить файл в формате unix-1251? Edited July 27, 2016 by Rezdbic Quote Link to comment Share on other sites More sharing options...
SoNick Posted July 27, 2016 Share Posted July 27, 2016 Различия в формате: win-1251, unix-1251 заключается в кодах перехода на новую строку. У виндовс 0Dh, 0Ah, а у unix только 0Ah. Я редактировал скрипт в текстовом редакторе Total Commander ( по кнопке F4). Там в меню "Правка"->"Формат новой строки" выбрал "Unix (0Ah)" и работал с редактором как обычно. Или как вариант использовать конвертер dos2unix как писал S_A. Quote Link to comment Share on other sites More sharing options...
Deshunin Sergey Posted July 27, 2016 Share Posted July 27, 2016 (edited) @SoNick в Total Commander'e нет встроенного текстового редактора. По умолчанию на кнопке F4 висит виндовый Блокнот, а у него нет выбора кодировок. Какой редактор у вас привязан к F4? Посмотреть можно так: Конфигурация-Настройка-Правка/Просмотр Edited July 27, 2016 by Fandor Quote Link to comment Share on other sites More sharing options...
SoNick Posted July 27, 2016 Share Posted July 27, 2016 Я использовал Total Commander powerpack, там текстовый редактор AkelPad Quote Link to comment Share on other sites More sharing options...
Deshunin Sergey Posted July 27, 2016 Share Posted July 27, 2016 Вот теперь понятно. В powerpack может быть всё что угодно. У меня лицензированный Total Commander и я привязал к этой кнопке Notepad++ Quote Link to comment Share on other sites More sharing options...
SoNick Posted July 27, 2016 Share Posted July 27, 2016 (edited) При желании можно скачать и поставить текстовый редактор AkelPad http://akelpad.sourceforge.net/ru/index.php он бесплатный и с открытым кодом Edited July 27, 2016 by SoNick Quote Link to comment Share on other sites More sharing options...
Deshunin Sergey Posted July 27, 2016 Share Posted July 27, 2016 @SoNick спасибо. Попробуем. Quote Link to comment Share on other sites More sharing options...
Rezdbic Posted July 28, 2016 Share Posted July 28, 2016 Notepad++! Дня два вспоминал как называется этот мега удобный редактор!)) Только не понятно какаю кодировку там использовать? Формат новой строки поставил Unix. А кодировку какую выбрать? Quote Link to comment Share on other sites More sharing options...
zyxmon Posted July 28, 2016 Share Posted July 28, 2016 (edited) Господа пользователи Entware! Предлагаю Вам начать использовать редакторы из состава Entware - их много разных и удобных. Для копирования в буффер обмена (в putty) достаточно выделить текст мышкой (в mcedit с клавишой Shift). Для вставки текста - клик правой кнопкой (в mcedit с клавишой Shift). Концы строк - нужные. Кому нужны разные кодировки - в mcedit выбираете по Alt-e. 1. mcedit - входит в состав mc, вызывается из mc клавишей F4 или `mcedit <файл>` 2. nano - очень удачная подсветка синтаксиса. Корректнее, чем (1) работает с буфером обмена. F3 - сохранение файла, Ctrl-X - выход. Остальное - см. встроенный Help. 3. joe 4. vim 5. vi (уже установлен) Edited July 28, 2016 by zyxmon 1 Quote Link to comment Share on other sites More sharing options...
Александр Рыжов Posted July 28, 2016 Share Posted July 28, 2016 1 час назад, Rezdbic сказал: Только не понятно какаю кодировку там использовать? UTF-8. 1 Quote Link to comment Share on other sites More sharing options...
S_A Posted September 21, 2016 Share Posted September 21, 2016 Так как спрашивают в личку, напишу еще и в тему, может пригодится. Q: как сделать проверку на несколько адресов серых подсетей? A: меняем строки поска grep и условие в 'if' на инверсные, добавив нужные проверки. Т.е меняем две строчки (в примере серые подсети: '100.x.y.z' и '80.1.x.y'): _ip=$(echo $address | grep -v "^100\." | grep -v "^80\.1\.") if [ -z "$_ip" ]; then 2 Quote Link to comment Share on other sites More sharing options...
Александр Рыжов Posted September 21, 2016 Share Posted September 21, 2016 @Rezdbic, сорри, дезинформировал. Важно лишь имя папки. Насколько помню, сами скрипты выполняются в алфавитном порядке. 1 Quote Link to comment Share on other sites More sharing options...
Dintra Posted September 22, 2016 Share Posted September 22, 2016 (edited) в связи с возникшей необходимостью был модифицирован скрипт S_A и благодаря его же неоценимой помощи. Данная модификация позволяет отсекать не одну серую подсеть, а столько сколько удасться выявить и прописать. Перед употреблением, необходимо отредактировать серые подсети под свой регион. Редактировать рекомендую в mcedit. Под виндой в Notepad++ лично у меня нормально отредактировать не получилось. white-ip.sh Edited September 22, 2016 by Dintra Quote Link to comment Share on other sites More sharing options...
Rezdbic Posted October 24, 2016 Share Posted October 24, 2016 Странно, на Giga II этот скрипт почему-то не работает.. Command::Base: argument parse error. Opkg::Manager: /opt/etc/ndm/wan.d/white-ip (1).sh: Error: Command::Base: argument parse error. Кто подскажет на что он ругается? Прошивка v2.08(AAFS.3)A8. Quote Link to comment Share on other sites More sharing options...
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.