Здравейте отново. Реших да открия новата 2015 година с една малка, но полезна статийка.
Ще започа от ситуацията, наложила тази статия.
Да предположим, че имате Raspbery Pi или друга линукска машина, която се свързваща чрез USB Wi-Fi безжична карта към някаква АР (рутер). В същото време ако сте манияк като мен и сте качили на рутера DD-WRT и не ползвате фабричният фирмуеър.
И така, когато правите настройки по рутера и той (или само безжичният интерфейс) се рестартира, то Raspbery Pi-то се "отвързва" от мрежата и после ръчно трябва да го "закачите" отново. А ако използвате основно SSH за достъп до Pi-то (или машината) то това е малък проблем.
Е край на това. В тази статия ще опиша, как да ти качите един скрипт, който автоматично преверява на определен интервал, който вие задавата дали сте "закачени" към мрежата и ако не сте се свързва.
И така да започнем. За целта първо трябва да изтеглим необходимият скрипт (който не е писан от мен, но е много прост в идеята си и ако не ви мързи сами можете на напишете).
Изпълняваме следната команда:
# get https://raw.github.com/dweeber/WiFi_Check/master/WiFi_Check -O /usr/local/bin/WiFi_Check
С тази команда, ще ни се изтегли в папка /usr/local/bin/ скрипт WiFi_Check.
След това трябва да направим файлът изпълним, чрез изплълнение на командата:
# chmod 0755 /usr/local/bin/WiFi_Check
И това е всичко за да може да се изпълнява всичко. Сега да направим командата/скриптът да се изпълнява на всеки 5 мин. примерно. Интервалът зависи от вас, като аз ще дам примери за 5 мин , 2 мин или всяка минута. Ще изплълним това чрез системата CRON (планировчикът на задачи в Linux). За повече информация прочетете статията Работа с CRON (когато я напиша :-) )
И така първо да "извикаме" CRON:
# crontab -e
Забележете, че трябва да сте root (за предпочитане).
*/5 * * * * /usr/local/bin/WiFi_Check
*/2 * * * * /usr/local/bin/WiFi_Check
За интервал от 1 мин добавяте следното
* * * * * /usr/local/bin/WiFi_Check
Излизате от файлът и запаметявате промените и това е.
Аз лично съм се спрял на интервал от 5 мин, защото не ми се толкова важно като цяло достътпът до малинката.
Малко в страни от статията искам да опиша и още нещо. При всяко изпълнение на командата за проверка на свързаността, ще ви се изпраща е-mail със изходът от командата - дали има нет, какво е IP-то на машината и др. Ако няма достъп ще се направи свързване към мрежата и пак ще ви се прати e-mail.
Това е полезно, но и досадно уведомление. Затова ще ви покажа как да прескочите уведомлението.
Всичко, което трявна да направите е към краят на записът в CRON да добавите следното "&> /dev/null
"
И за пример ще дам проверка на целият запис на интервал от 5 мин, без уведомление до потребителят:
*/5 * * * * /usr/local/bin/WiFi_Check &> /dev/null
Това е всичко. Приятно експериментиране.