====== Настройка бэкапов ====== ===== Бэкап базы данных ===== Бэкап базы данных выполняется bash-скриптом "backup.sh" находящийся в директории ///home/backup_scripts// Скрипт "backup.sh" выполняется каждый день в 03:15 с помощью демон-программы //Cron//. Архивы с бэкапами базы данных сохраняются в директории ///home/backup/Db/"год"/"месяц"// Запись в //Cron// идет с помощью исполняемого файла //"rc"// в директории ///etc/cron.h// !/bin/sh find /home/backup -type f -ctime +30 -name "*.sql.gz" -exec rm {} \; -print pg_dump -Fd -v -Z 5 -j 5 --dbname=postgresql://postgres:PASS@localhost:5432/dozor -f `date +%y%m%d`.sql.dump if ! [ -d /home/backup/Db/`date +20%y` ]; then mkdir /home/backup/Db/`date +20%y`/ fi if ! [ -d /home/backup/Db/`date +20%y`/`date +%m` ]; then mkdir /home/backup/Db/`date +20%y`/`date +%m`/ fi mv `date +%y%m%d`.sql.dump /home/backup/Db/`date +20%y`/`date +%m` ===== Процесс создания bash-скрипта backup.sh ===== Создается директория, командой //mkdir//, для хранения бэкапов базы данных, логов и бинарных файлов: cd /home mkdir backup cd backup mkdir Logs Db Bin Переход обратно в директорию Home: cd /home Создается дополнительная директория для хранения bash-скриптов: mkdir backup_scripts Переход в рабочую директорию: cd /home/backup_scripts Создается новый скрипт и делается исполняемым: touch backup.sh chmod +x ./backup.sh Редактируется скрипт с помощью команды: nano backup.sh Предварительно установив nano: emerge nano Создавая пустой файл с использованием команды //touch//. В его первой строке нужно указать, какая именно оболочка используется. Поэтому первая строка файла будет такой: #!/bin/bash Следующие строки будут проверять наличие старых архивов и создавать дамп postgres. find /home/backup -type f -ctime +30 -name «*.sql.gz» -exec rm {} \; -print pg_dump -Fc -v --dbname=postgresql://postgres:ПАРОЛЬ_ЮЗ_ПОСТГРЕС@localhost:5432/dozor -f `date +%y%m%d`.sql.dump Далее проверяются и создаются директории для хранения базы данных if ! [ d /home/backup/Db/`date +20%y` ]; then mkdir /home/backup/Db/`date +20%y`/ fi if ! [ d /home/backup/Db/`date +20%y`/`date +%m` ]; then mkdir home/backup/Db/`date +20%y`/`date +%m`/ fi mv `date +%y%m%d`.sql.gz /home/backup/Db/`date +20%y`/`date +%m` Выход из текстового редактора с сохранением осуществляется нажатием клавиш Ctrl+X, //Enter// ===== Бэкап Логов ===== Логи отправляются архивом на жесткий диск первого числа каждого месяца в 03:00. Настроено это bash-скриптом //«back.sh»//, находящимся в директории ///home/backup_scripts//, который запускается с помощью демон-программы //Cron//. Суть этого скрипта - он создает с проверкой новые каталоги ///home/backup/Logs/ «год» //. И отправляет заархивированные логи в созданную директорию. Также удаляет все старые архивы из ///var/lib/dozor/log// Запускается каждый месяц с помощью //Cron//. Запись в //Cron// идет в файле //"rc"// в директории ///etc/cron.d//, в дальнейшем рассмотрим на примере. #!/bin/bash cd /var/lib/dozor/log tar -cMvf $(date +%y.%m.%d).tar.gz * if ! [ -d /home/backup/Logs/`date +%20y`/ ]; then mkdir /home/backup/Logs/`date +20%y` fi mv $(date +%y.%m.%d).tar.gz /home/backup/Logs/`date +20%y` rm *.tar.gz ===== Процесс создания bash-скрипта back.sh ===== Переход в рабочую директорию: cd /home/backup_scripts Создание пустого файла с использованием команды //touch//: touch back.sh Файл делается исполняемым: chmod +x ./back.sh Файл back.sh редактируется с помощью текстового редактора //nano//: nano back.sh Создавая пустой файл с использованием команды //touch//. В его первой строке нужно указать, какая именно оболочка используется. Поэтому первая строка файла будет такой: #!/bin/bash Следующие строки скрипта будут архивировать логи, название архива - дата: cd /var/lib/dozor/log tar -cMvf $(date +%y.%m.%d).tar.gz * Проверка каталогов, при их отсутсвии создаются новые: if ! [ -d /home/backup/Logs/`date +20%y`/ ]; then mkdir /home/backup/Logs/`date +20%y` fi Перемещение архивов и удаление старых логов: mv $(date +%y.%m.%d).tar.gz /home/backup/Logs/`date +20%y` rm *.tar.gz Выход из текстового редактора с сохранением осуществляется нажатием клавиш Ctrl+X, Enter ===== Настройка CRON ===== //Сron// – программа-демон, предназначенная для выполнения заданий (скриптов) в определенное время, или через определенные промежутки времени. Переход в директорию к исполняемому файлу: cd /etc/cron.d Редактирование исполняемого файла командой: nano rc Добавляются дополнительные строки по примеру: 0 3 1 * * root /home/backup_scripts/back.sh 15 3 * * * root /home/backup_scripts/backup.sh ===== Бэкап BIN файлов ===== Бэкап BIN файлов делается вручную, после установки сервера или обновления сервисов, с сохранением в ///home/backup/Bin// cp -r /var/lib/dozor /home/backup/Bin cd /home/backup/Bin/dozor rm -r log updates