Как известно, бэкапы — это наше все. Делаем бэкап с помощью 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 появляются папки с бэкапами.
Удачи!
Просто и изящно.
Доброе время суток!
Наступил момент создания резервированния сервера и Ваш скрипт просто порадовал мое сердце. Хотел уточнить, он актуален и для седьмого Debian?
remastersys — прекратила свое существование, может сделать на аналогах?
mysqldump -q -u root -pMyRootPassword пароль пишется сразу после -p без пробела?
Спасибо, жду ответов на вопросы.