Якщо Ваш роутер D-Link DIR-320 і він працює на альтернативній прошивці DD-WRT то існує чудова можливість керувати світлодіодами пристрою, наприклад за допомогою скриптів.
Використаємо освітлення бокової кнопки для того щоб автоматично показувати чи є зв’язок з потрібними серверами.
Мені зручно перевіряти доступність (Ping) з трьома серверами: 1-й — той з яким встановилось з’єднання PPPoE (мій шлюз), 2-й — шлюз провайдера (щоб знати коли в провайдера пропадають зовнішні канали, якщо це станеться) і 3-й — якийсь сервер в "далекому" інтернеті (наприклад DNS від Google — 8.8.8.8).
Найпростіший метод - закинути скрипт в роутер через його веб-інтерфейс.
Використовуйте сторінку "Commands", як зображено на малюнку (зберігайте через Save Startup).
Після збереження перевантажте роутер.
Тепер бокове світло буде моргати один раз синім, якщо є зв’язок з усіма серверами, або червоним світлом, якщо зв’язку з одним із серверів немає. ;)
Кількість блимань червоного світла вкаже на номер сервера на якому зв’язок обривається.
Не забудьте вказати змінну SUPER_GATEWAY (якийсь зовнішній шлюз провайдера)!
#!/bin/sh
# SYM, 18.03.11
export PATH=/bin:/usr/bin:/sbin:/usr/sbin
SUPER_GATEWAY="ВПИШІТЬ_IP_СЕРВЕРА_ПРОВАЙДЕРА_СЮДИ"
GOOGLE="8.8.8.8"
GPIO="gpio"
DELAY=3
Red=3
Blue=4
while sleep $DELAY
do
GATEWAY=`ip route | awk '/default via/ {print $3}'`
COUNT=1
if ping -c 1 $SUPER_GATEWAY >/dev/null
then
COLOR=$Blue
if ping -c 1 $GOOGLE >/dev/null
then
COLOR=$Blue
else
COUNT=2
COLOR=$Red
fi #GOOGLE
else
COUNT=1
COLOR=$Red
fi #SUPER_GATEWAY
CUR=1
while [ $CUR -le $COUNT ]
do
$GPIO disable $COLOR
usleep 100000
$GPIO enable $COLOR
usleep 500000
CUR=`expr $CUR + 1`
done #bink
done #sleep
Для цікавих: змінюючи порядковий номер для команди gpio можна керувати і іншими світлодіодами (наприклад індикатором USB (принтер), на передній панелі).
18.03.11 оновив скрипт (дрібні виправлення).
