пятница, 27 декабря 2013 г.

Скрипт для проверки подключения к интернету

Наверняка в своей жизни вы сталкивались с такой ситуацией, когда при низкой скорости и нестабильном соединении надо скачать в интернете что-либо имеющее большой объём. Часто это беда usb-модемов. Пролетел самолёт, проехала машина или что-либо ещё вызвало помехи и от интернета мы отключились. Или скорость просто упала и не поднимается и нужно отключиться от интернета и подключиться снова.


В таком случае почти безнадёжно оставлять компьютер включенным на ночь, надеясь, что хоть что-то скачается. Где бы найти программу, которая будет проверять, есть ли соединение и подключать заново, если соединения нет.

Недавно я решил помочь одному человеку в этом вопросе и набраться немного опыта в этом вопросе. Инструкция применима как разным системам, но протестирована на Xubuntu 12.04.3.
Так я написал скрипт, который для проверки соединения скачивает файл и проверяет, скачался ли файл. Если файл есть, то он просто удаляется, если файла нет, то принудительно отключает Network Manager, а затем включает его. Также он создаёт лог-файл, котором отражает информацию о переподключениях. Вот сам скрипт:
__________
#!/bin/sh  
#That's network reconnection script
#activate infinite circle 
while [ 1 ]; do 
#checking if there is already test file
if [ -e Release ]
    then
    rm Release
fi
#downloading test file
wget http://archive.ubuntu.com/ubuntu/dists/lucid/Release
sleep 5s
#reaction
if [ -e Release ]
    then
    rm Release
    echo "Success! You have network connection!"
    else 
    nmcli nm enable false
    nmcli nm enable true
    echo "there was +1 reconnection">>logfile 
fi
sleep 30m
done
__________

Теперь создаём файл, копируем содержимое текста в этот файл и даём ему права на исполнение. Если вы используете файловый менеджер Thunar или Nautilus, нужно открыть свойства файла и во вкладке права поставить галочку, чтобы "Разрешить исполнение файла как программы". Если такого пункта нет, то нужно переименовать файл и добавить к нему расширение *.sh. Например reconnector.sh. Чтобы проверить, что скрипт работает, его можно запустить через терминал.

Самая сложная часть сделана. Теперь нужно настроить автоподключение мобильного соединения, особенно если у вас usb-модем. Нужно открыть сетевые соединения, выбрать изменение соединения и поставить галочку "Подключаться автоматически"(или что-то подобное).

На этом всё. Теперь можем спокойно запускать этот скрипт и поставить на загрузку большой файл. Главное, чтобы у вас была возможность докачки. :)