- Главная... arrow - Статьи... arrow | - Shell

#Записки о Unix/Linux/BSD/Solaris

Shell - статьи, инструкции...
VmWare-Server скрипт бэкапа виртуальных машин
Автор Охальников Олег   
09:02:2011 г.
Как и было обещано в предыдущей статье "VmWare-Server управление машинами из консоли с помощью vmrun", в данной выкладываю скрипт, выполняющий бэкап виртуальной машины (в данном примере машины - Test). Небольшое отступление, т.к. некоторые длинные строки не помещаются в формате сайта, для них сделаны переносы с помощью символа "==>". При копировании скрипта, символы переноса надо убрать, а команду записать в одну строку. Скрипт хорошо комментирован, поэтому требует минимум пояснений. Основные параметры задаются в самом начале скрипта. Задаем  логин пароль для администратора виртуальных машин, администратора гостевой ОС, в качестве которой выступает ОС W2k3. Сам скрипт размещаем в директории /root/script/vmbackup (необходимые директории нужно создать). У меня скрипт называется vmbackuptest.sh, делаем скрипт исполняемым, права только владельцу root, остальным запрещаем все - это важно, т.е. chmod 700. Скрипт ведет подробный лог своих действий (содержание лога ниже), путь для файлов логов /root/script/vmbackup/log, в директории будут создаваться файлы следующего вида: 2011-02-09.log (в скрипте этого нет, но легко добавить команду, которая хранит нужное количество логов или сжимает старые логи), которые отправляются администратору на e-mail. В данном примере папка для виртуальных машин - стандартная: /var/lib/vmware/Virtual Machines/, а сама машина находится здесь: /var/lib/vmware/Virtual Machines/Test. Под избыточные бэкапы в системе выделен отдельный HDD, директория с бэкапами расположена по этому пути: /mnt/backup/vmbackup (нужно создать).В данной папке автоматом создается папка формата 2011-02-09, в которую копируются виртуальные машины, в данном примере будет создано следующее: /mnt/backup/vmbackup/2011-02-09/Test/. Итак, сам скрипт в первом приближении, будем считать альфа-альфа (хорошо написанный код не гарантирую, но скрипт выполняет нужные действия, любые предложения по улучшению, принимаются):

Коментарии (25) | Просмотров: 39769

Подробнее...
 
Скрипт простого мониторинга с отправкой результатов на почту (на примере gmirror).
Автор Охальников Олег   
29:12:2010 г.
Постановка задачи следующая. Есть команда, возвращающая какой-то статус, если говорить о gmirror, то эта команда:

gmirror status

Выводит следующее: 
         Name          Status            Component
         mirror/gm0    COMPLETE          ad4
                                                 ad6
Будем сравнивать MD5 хэши нормального состояния и измененного, для этого выводим MD5 с нормальным статусом COMPLETE: 

# gmirror status | md5
  52a948bc6d41efe4b7e68dfcba048a7e

Почему MD5, а не ищем например по тексту "COMPLETE"? Можно и так и так, только с MD5 более универсально как мне кажется, можно применить в разных задачах.
Ну а теперь собственно сам скрипт: 

# -----------------------------------
# Created  Ohalnikov Oleg
# Support: http://unixa.ru
# -----------------------------------

#!/bin/sh

d=`date '+%Y%m%d'`
h="Hostname"
g=$(gmirror status)
m=" Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script "
x="52a948bc6d41efe4b7e68dfcba048a7e"
y=$(gmirror status | md5)
if [ $x != $y ]
then
echo "$g" | mail -s "Mirror change status $h $d" $m
fi
exit 0

Вначале определяем переменные:
d - дата в формате ГОДМЕСЯЦДЕНЬ (будем писать в тему письма)
h - Имя хоста, который мониторим (будем писать в тему письма)
g - тескт со статусом рейда (будем писать в тело письма)
m - адрес администратора
x -  значение MD5 при нормальном статусе
y - определяем текущее значения MD5, далее сравниваем значение правильное и текущее и если они разные - отправляем письмо.

Скрипт помещаем в crontab (в примере выполняется каждый день в 17:00)

0 17 * * * /root/script/gmstatus.sh


p.s. для RAID ar можно написать по аналогии, команда вывода статуса:

# atacontrol status ar0

Ваш коментарий будет первым | Просмотров: 6283

Подробнее...
 
Crontab в будни и в выходные. Добавление правила в IPNAT по расписанию.
Автор Охальников Олег   
28:12:2010 г.
Приведу не сложный пример решения следующей задачи...
Необходимо чтобы запросы с внешнего IP с 18:00 до 9:00 редиректились в сеть на локальный IP, а с 9:00 до 18:00 это правило отключалось. Так же необходимо, чтобы в выходные дни правило редиректа работало круглосуточно.  Получается как бы динамический NAT )))))).
Все это можно сделать с помощью crontab и очень простых скриптов.
Итак, в качестве NAT у меня используется IPNAT, необходимое правило выглядит следующим образом:

rdr em1 Inet_IP/32 port 80 -> Local_IP port 3107 tcp

em1 - это внешний интерфейс. Т.е. согласно правилу все коннекты на Inet_IP порт 80 переадресовываются в локалку на Local_IP порт 3107, на котором крутится нужный сервис. Создаем два скрипта однострочника, на добавление правила (ipnat_in.sh) и на удаление правила (ipnat_out.sh).  /etc/ipnat.conf - конфиг с правилами IPNAT.
ipnat_in.sh:

#!/bin/sh
echo 'rdr em1 Inet_IP/32 port 80 -> Local_IP port 3107 tcp' >> /etc/ipnat.conf;

ipnat_out.sh:

#!/bin/sh
cat /etc/ipnat.conf | grep -v Local_IP > /etc/ipnat.conf;

Тестируем в ручном режиме, проверяем /etc/ipnat.conf, первый скрипт должен добавлять в конец файла нужное правило, второй - это правило удаляет. Для того чтобы перечитать правило, нужно выполнить следующую команду:

ipnat -FC && ipnat -f /etc/ipnat.conf

 

Коментарии (2) | Просмотров: 5897

Подробнее...
 
Простой скрипт бэкапа ( на примере FreeBSD)
Автор Охальников Олег   
24:12:2010 г.
Резервирование поделю на два вида - это повышение надежности с помощью RAID массивов и избыточное резервирование. Отмечу, что оба подхода должны применяться на ВАЖНЫХ серверах (в лучшем случае - на любых серверах). RAID, например 1 - зеркало, спасет от отказа одного из HDD, если файл сервер с большим количество HDD, то желательнее применять или RAID 10 или RAID 6 (за подробностями в википедию). Т.е. за короткий срок извлекаем поврежденный HDD, вставляем новый синхронизируем и продолжаем работать, наличие HotSwap корзин в данном случае очень желательно. От чего не спасет RAID, так это от человеческого фактора. Например взяли и удалили файл, спохватились, а его уже нет или повредили данные и т.д. Для этого необходима система избыточного резервирования важной информации, на сервере в основном это конфигурационные файлы, базы данных MySQL. В итоге имеем, как минимум 3 HDD, из двух собираем RAID1 (зеркало) и ОТДЕЛЬНЫЙ HDD - под бэкапы важных файлов. Конечно, это не обязательно, это лишь моя точка зрения, моё мнение.
Сам скрипт бэкапа backup.sh не сложный, выглядит следующим образом:


# -----------------------------------
# Created Ohalnikov Oleg
# Support: http://unixa.ru
# -----------------------------------

#!/bin/sh

DIR=/mnt/backup
DATA=`date '+%Y%m%d'`

cd $DIR
mysqldump -u root --password='*****' -l --all-databases | gzip > databases-$DATA.sql.gz
tar -czf named-$DATA.tar.gz /var/named
tar -czf log-$DATA.tar.gz /var/log
tar -czf etc-$DATA.tar.gz /etc
tar -czf locetc-$DATA.tar.gz /usr/local/etc
tar -czf www-$DATA.tar.gz /usr/local/www

for file in *-$DATA.*
do
echo "$file" >> $DIR/current
done
    echo "Backup Server $DATA" | mail -s "Backup Server $DATA" Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script < $DIR/current
rm -f $DIR/current

find $DIR/* -mtime +7 -exec rm {} \;

# <<< THE-END >>>

Коментарии (10) | Просмотров: 41600

Подробнее...
 
cdrecord - запись дисков
Автор H@wk!   
13:04:2009 г.
Самый быстрый способ записать iso образ на новый диск - это воспользоваться консольной утилитой cdrecord.

Определяем устройство:

sudo cdrecord -scanbus


Вывод команды - это список всех устройств системы. SCSI адрес каждого устройства представляет три числа, например 1,4,0. Для записи образа выполним следующую команду:

cdrecord dev=1,4,0 -v /dir/image.iso


Для автоматизации последующих записей (дабы не вводить постоянно данные о приводе) пропишем параметры устройства в файле: /etc/default/cdrecord:

Ваш коментарий будет первым | Просмотров: 6332

Подробнее...
 

#COMMENT

Блокируем Ylmf-pc на Exim, Bru...
Благодарю за кучу уцелевших нервов:) постоянно приходилось б...
30/05/17 00:02 More...
By Mus

Установка даты и времени в кон...
Спасибо
12/05/17 17:49 More...
By dushka

Раскладка в rdesktop
Огромное спасибо!
28/04/17 14:01 More...
By Виктор

Аутентификация средствами Apac...
подскажите как писать пороль цифры ?пж! :sigh
28/03/17 13:06 More...
By Лиза

Logwatch - мониторинг журналов...
Отлично, очень не хватало. Автору большое спасибо, пиши еще.
25/01/17 02:44 More...
By Gregg

Сейчас на сайте находятся:
3 гостей