Счетчик

Поисковый анализ сайта
яндекс.ћетрика
Cервер и сайт запущен 2011.02.01 на Debian

Как известно, бэкапы - это наше все. Делаем бэкап с помощью tar и remastersys темной ночью, пока никто не видит. 
Для начала создадим файл, в котором будет наш могучий скрипт. Простой, но могучий.

# touch /home/backup.sh



Создаем папки для бэкапов: 

# mkdir /backups



Это для SQUID 

# mkdir /backups/squid/



Это для SAMBA 

# mkdir /backups/samba/



Это для папки с веб-сервером 

# mkdir /backups/www/



Это для дампов баз данных 

# mkdir /backups/mysql/



Это для бэкапа всей системы целиком в ISO образ, чтобы в случае чего можно было все снести и накатить заново 

# mkdir /backups/system-iso/



Делаем скрипт его запускаемым: 

# chmod -x /home/backup.sh



Далее открываем любым редактором /backup.sh и пишем примерно следующее: 

#!/bin/bash  
# префикс с датой  
DATE_PREF=`date +%F`  
# В переменной BACKUP_xxx_DIR лежит путь, куда будет сохраняться бэкап к каталогу с файлами, текущая дата будет браться из переменной DATE_PREF  
BACKUP_SQUID_DIR=  
/backups/squid/$DATE_PREF  
BACKUP_SAMBA_DIR=/backups/samba/$DATE_PREF  
BACKUP_MYSQL_DIR=/backups/mysql/$DATE_PREF  
BACKUP_WWW_DIR=/backups/www/$DATE_PREF  
# ищем файлы старше 7 суток и удаляем их, дабы не засорять жесткий диск  
find /backups/squid/ -mtime +7 -print -mindepth 1 -delete >/dev/null 2>&1  
find /backups/samba/ -mtime +7 -print -mindepth 1 -delete >/dev/null 2>&1  
find /backups/mysql/ -mtime +7 -print -mindepth 1 -delete >/dev/null 2>&1  
find /backups/www/ -mtime +7 -print -mindepth 1 -delete >/dev/null 2>&1  
# Удаляем старые бэкапы системы, чтобы не плодить лишние  
find /backups/system-iso/install -mtime +7 -print -mindepth 1 -delete >/dev/null 2>&1  
# создаем tar'ом  
tar cpzf $BACKUP_SQUID_DIR\-squid.tgz /etc/squid/ >/dev/null 2>&1  
tar cpzf $BACKUP_SAMBA_DIR\-samba.tgz /etc/samba/ >/dev/null 2>&1  
tar cpzf $BACKUP_WWW_DIR\-www.tgz /var/www/ >/dev/null 2>&1  
# создаем дампы баз данных MySQL. Обязательно указываем пользователя и пароль  
# Тут же упаковываем gzip-ом  
mysqldump -q -u root -pMyRootPassword -h localhost db_nagiosql_v3 | gzip -c > $BACKUP_MYSQL_DIR\-db_nagiosql_v3.sql.gz  
mysqldump -q -u root -pMyRootPassword  
-h localhost dbmail | gzip -c > $BACKUP_MYSQL_DIR\-dbmail.sql.gz  
mysqldump -q -u root -pMyRootPassword  
-h localhost information_schema | gzip -c > $BACKUP_MYSQL_DIR\-information_schema.sql.gz  
mysqldump -q -u root -pMyRootPassword  
-h localhost mysql | gzip -c > $BACKUP_MYSQL_DIR\-mysql.sql.gz  
# Делаем INSTALL.ISO бэкап с помощью Remastersys 
remastersys backup install-$DATE_NOW.iso 
# Копируем образ и MD5 отпечаток для сохранности и проверки образа 
# Если не скопировать, то при очистке временных файлов образ удалится 
cp /home/remastersys/remastersys/install-$DATE_NOW.iso /backups/system-iso/install/install-$DATE_NOW.iso 
cp /home/remastersys/remastersys/install-$DATE_NOW.iso.md5 /backups/system-iso/install/install-$DATE_NOW.iso.md5 
# Очищаем временные файлы 
remastersys clean



Настроим remastersys, для этого открываем файл /etc/remastersys.conf и вносим следующие изменения: 

# Указываем каталог, в котором будет создаваться образ 
WORKDIR="/home/remastersys" 
# Исключаемые папки. раздеритель - пробел.  
EXCLUDES="/backups" 
# Название образа 
LIVECDLABEL="Custom Live CD BACKUP" 
# Имя файла образа 
CUSTOMISO="install-$1.iso" 
# Метод загрузки LiveCD (ISOLINUX или GRUB) 
CDBOOTTYPE="ISOLINUX"



Теперь добавим в CRON расписание для проведения бэкапа. 

# crontab -e


и пишем туда: 

30 2 * * * /home/backup.sh


Сохраняем и наслаждаемся. 

Для того, чтобы проверить, как будет работать скрипт - пишем: 

# sh /home/backup.sh



У меня на все-провсе уходит минут 10. После того, как скрипт отработает - в папке /backups появляются папки с бэкапами. 

Удачи! Если что пишити задавайте свои вопросы!

Добавить комментарий


Защитный код
Обновить