Резервное копирование
Организация ежедневного резервного копирования баз данных со сжатием и чисткой копий старше 30 дней.
Содержание
Полный общий рецепт, он же рецепт для Ubuntu
sudo bash mkdir -p /home/db-backups chmod 755 /home/db-backups chown root:root /home/db-backups apt-get -y --force-yes install p7zip-full # разовое выполнение резервного копирования делается так: /usr/bin/7z a -mx5 /home/db-backups/gdb-$(date +%F).7z /opt/xxi/data/
Занесение в расписание: откройте файл /etc/crontab и допишите туда:
# ---------------------------------------- # SP Database Backup # ---------------------------------------- 0 0 * * * root /usr/bin/7z a -mx5 /home/db-backups/gdb-$(date +\%F).7z /opt/xxi/data/ 0 0 * * * root /usr/bin/find /home/db-backups -name "*.7z" -mtime +30 -exec rm -f {} \;
Отличия в Mandriva
Отличается командой установки 7-Zip:
urpmi p7zip
и именем исполняемого файла 7-Zip: не 7z, а 7za.
Отличие в ALT Linux
Отличается от Ubuntu командой установки 7-Zip:
apt-get install p7zip
Если нет 7-Zip
Можете использовать tar:
tar -czf /home/db-backups/gdb-$(date +\%F).tar.gz /opt/xxi/data/
Команда в crontab для очистки архивов старше 30 дней будет выглядеть иначе:
0 0 * * * root /usr/bin/find /home/db-backups -name "*.gz" -mtime +20 -exec rm -f {} \;
Суть изменения в том, что удаляются не файлы *.7z, а *.gz
Результат
Каждые сутки в полночь будут создаваться резервные копии баз портала. Они будут складываться в папку /home/db-backups, доступную только для пользователю root. Копии старше 30 дней будут удаляться автоматически.
Если на сервере более чем один винчествер, не допускайте, чтобы базы и их копии лежали на одном и том же физическом диске.