Перезапуск мережевого інтерфейсу при недоступності хоста
                            Мій Raspberry Pi підключений до локальної мережі по WiFi за допомогою USB WiFi адаптера «ASUS USB-N10» і при збоях в мережі (наприклад коли рутер зависає або перезавантажується) Raspberry Pi не підключається до WiFi мережі. Щоб виправити цю ситуацію Я написав маленький сценарій на «Shell» перевіряючий доступність мережі пінгуя рутер і запускає интерфейс wlan0. Після запису в cron сценарій буде перевіряти мережу кожну хвилину.
- Name: ifdown_net.sh
 - Description: Ping host and restart interface if host is down
 - Language: Shell
 
#!/bin/sh
#=============================================================#
# Name:         If Down Net                                   #
# Description:  Checking the net by ping and restart          #
#               interface if is need                          #
# Version:      ver 1.0                                       #
# Data:         10.7.2014                                     #
# Author:       Arthur Gareginyan                             #
# Author URI:   https://www.arthurgareginyan.com              #
# License:      GNU General Public License, version 3 (GPLv3) #
# License URI:  http://www.gnu.org/licenses/gpl-3.0.html      #
#=============================================================#
#                       USAGE:
#               chmod +x ifdown_net.sh
#     Add folowing line to the end of the /etc/crontab :
#     */1  *    * * *   root    /home/user/ifdown_net.sh
# The host to test by ping. You can use IP or domain name.
HOST="192.168.1.1"
# The device wich need to reload
DEVICE='wlan0'
########################## BEGIN ##############################
# Check the availability of a host
ping -c 3 $HOST >/dev/null 2>&1
# Restart interface if host is down
if [ $? -ne 0 ] ; then
        ifup $DEVICE ;
fi
exit 0
                            У коді потрібно виправити змінні HOST і DEVICE на необхідні.
Дамо права на виконання:
chmod +x ifdown_net.sh
                            І зробимо запис в cron для автоматичного запуску скрипта кожну хвилину:
sudo nano /etc/crontab
                            # Test interface and reload if need */1 * * * * root /home/user/ifdown_net.sh
Якщо хочеться запускати не кожну хвилину, а наприклад кожні 5 хвилин, тоді потрібно виправити 1 на5.
Arthur is a designer and full stack software engineer. He is the founder of Space X-Chimp and the blog My Cyber Universe. His personal website can be found at arthurgareginyan.com.