суббота, 10 января 2015 г.

Debian или как спасти себя от ошибок! Делаем backup конфигурационных файлов...

Когда я еще начинал свое изучение системы Linux, я очено много раз ошибался при настройке системы и вся беда была в том, что я не подумал вовремя сохранить перед редактированием оригинальный файл конфигурации, думаю я не один такой.. :) После этого я создал себе скрипт для регулярных backup всего каталога /etc с фиксированием даты его сохранения и когда у меня очередной раз "забыл как там было" или "не получилось", то открываем архив последнего backup и вуаля... полегчало. :)

и еще совет начинающим.. в каталоге /etc создайте каталог например /script и храните все такие скрипты там.. Знаю, точнее догадываюсь, что скажут гуру, но поверьте оно того стоит. Ведь при архивации вашего каталога /etc  запакуются и ваши скрипты в той версии которая была тогда и если вдруг понадобится посмотреть, а как я раньше это делал - пожалуйста в архиве.. Место хранения архивов на ваше усмотрение, у меня выделенный раздел или просто в /home/backup/etc.
И еще! После каждых изменений в конфигурационных файлах запускайте скрипт архивации каталога /etc ... Для упрощения запуска сделайте в /usr/local/bin ссылку на этот скрипт в /etc/scripts/bak-etc.sh
Тогда не надо будет указывать каждый раз полный путь к скрипту..
Сам скрипт ниже:

#!/bin/bash
##
mdate=`date +%d%m%y_%H.%M`
cd /home/backup/etc;
tar -cf etc-$mdate.tar /etc;
gzip -9 etc-$mdate.tar;
cd
exit 0

И удачи всем вам.. :)

Пересоединение ppp0 или как упростить себе жизнь.. :)

Пишу скрипт на bash который за меня смотрит сеть и если что не так на сервере то ее "поднимает". Комментарии в скрипте..
По поводу работы скрипта, если сеть лежит, то скрипт переподключает сетевой интерфейс eth0 после чего пытается поднять РРР0. Критерий проверки сайт гугла .. :)
для работы скрипта ставим его в crontab так:

############# reconnect-pppoe
*/1 * * * * root /etc/scripts/test-net.sh > /dev/null 

 Сам скрипт:

#!/bin/sh
#########################
scriptlog=/var/log/syslog
provider="dsl-provider"
test_host="google.com"

## pppoe reconnect
reconnect() {
## reconnect eth0
    poff -a
    sleep 5
    ifdown eth0
    sleep 15
    ifup eth0
    sleep 15
## reconnect ppp0
    pon "$provider"
    sleep 15
# если необходимо перестартовать службы то пишем тут...
/etc/init.d/bind9 restart
/etc/init.d/openvpn restart
};

test_ppp0=`ifconfig|grep ppp0|tail -n 1|wc -m`

if [ "$test_ppp0" != 0 ];
    then 
        ping -s 5 -A -c 5 "$test_host" > /dev/null  && exit
        echo `date` "нет опроса хоста в сети интернет, пересоединяюсь..." >>$scriptlog
        reconnect
    else
        echo `date` "нет интерфейса ppp0, пересоединяюсь..." >>$scriptlog
        reconnect
fi

exit  0


Периодически буду тут свои скрипты писать.. Мож кому и помогут. :)