Инкрементный backup директории сайта на сетевое хранилище
Допустим, что нам надо сделать инкрементную копию каталога /var/www/html/ в сетевое хранилище. Каждую полночь должен создаваться полный бэкап, а в 8 утра и 16 дня должны делаться инкрементные копии. Архивы должны храниться 8 дней и быть запакованы в .tar
Создадим скрипт полного бэкапа
nano /opt/backup/backup_full
#!/bin/bash
# Create incremental copy of /var/www/html
#монтируем папку с NAS сервера
mount -t nfs 01.23.45.67:/volume1/on/nas/server /mnt/backup
# Создадим полный архив и запишем метаданные в файл /var/log/www.snar В этом файле будут содержаться сведения об архивируемых файлах. Его мы будем использовать позднее
tar –create \
–file=/mnt/backup/”backup_$(date +”%Y_%m_%d_%I_%M”).tar” \
–listed-incremental=/var/log/www.snar \
/var/www/html*
#отмонтируем папку
umount /mnt/backup
========================================================================================
Создаём скрипт для инкрементного бэкапа, используя метаданные от понлого
nano /opt/backup/backup_incremental
#!/bin/bash
# Create incremental copy of /var/www/html
#mount nfs volume
mount -t nfs 01.23.45.67:/volume1/on/nas/server /mnt/backup
#Create .tar archive with incremental metadata /var/log/www.snar
tar –create \
–file=/mnt/backup/”backup_$(date +”%Y_%m_%d_%I_%M”).tar” \
–listed-incremental=/var/log/www.snar \
/var/www/html*
#umount nfs volume
umount /mnt/backup
=======================================================================================
Создадим скрипт по удалению старых бэкапов. Удалять будем файлы, которые старше 8 дней и вместе с файлами будем удалять файл метаданных, что б следующий бэкап был полный.
nano /opt/backup/remove_old_bkp
#!/bin/bash
#remove backup older than 8 day
#mount nfs volume
mount -t nfs 01.23.45.67:/volume1/on/nas/server /mnt/backup
# remove files backup* older than 8 days
find /mnt/backup/backup* -mtime +8 -exec rm {} \;
# remove metadata file
rm -f /var/log/www.snar
#umount nfs volume
umount /mnt/backup
=======================================================================================
Задания в планировщик Cron
jobname: /etc/cron.d/backup_wwwroot_full
00 00 * * * root /opt/backup/backup_full
=======================================================================================
jobname: /etc/cron.d/backup_wwwroot_inc
00 8,16 * * * root /opt/backup/backup_incremental
=======================================================================================
jobname: /etc/cron.d/remove_wwwroot_backup
58 23 * * * root /opt/backup/remove_old_bkp
=======================================================================================
archivebackupincrementincrementaltartar archiveинкремент
Backup директории сайта в .tar архив инкрементно
19 July 2017
Backup, Linux, Scripting
No Comments
bakabuka
Инкрементный backup директории сайта на сетевое хранилище
Допустим, что нам надо сделать инкрементную копию каталога /var/www/html/ в сетевое хранилище. Каждую полночь должен создаваться полный бэкап, а в 8 утра и 16 дня должны делаться инкрементные копии. Архивы должны храниться 8 дней и быть запакованы в .tar
Создадим скрипт полного бэкапа
nano /opt/backup/backup_full
#!/bin/bash
# Create incremental copy of /var/www/html
#монтируем папку с NAS сервера
mount -t nfs 01.23.45.67:/volume1/on/nas/server /mnt/backup
# Создадим полный архив и запишем метаданные в файл /var/log/www.snar В этом файле будут содержаться сведения об архивируемых файлах. Его мы будем использовать позднее
tar –create \
–file=/mnt/backup/”backup_$(date +”%Y_%m_%d_%I_%M”).tar” \
–listed-incremental=/var/log/www.snar \
/var/www/html*
#отмонтируем папку
umount /mnt/backup
========================================================================================
Создаём скрипт для инкрементного бэкапа, используя метаданные от понлого
nano /opt/backup/backup_incremental
#!/bin/bash
# Create incremental copy of /var/www/html
#mount nfs volume
mount -t nfs 01.23.45.67:/volume1/on/nas/server /mnt/backup
#Create .tar archive with incremental metadata /var/log/www.snar
tar –create \
–file=/mnt/backup/”backup_$(date +”%Y_%m_%d_%I_%M”).tar” \
–listed-incremental=/var/log/www.snar \
/var/www/html*
#umount nfs volume
umount /mnt/backup
=======================================================================================
Создадим скрипт по удалению старых бэкапов. Удалять будем файлы, которые старше 8 дней и вместе с файлами будем удалять файл метаданных, что б следующий бэкап был полный.
nano /opt/backup/remove_old_bkp
#!/bin/bash
#remove backup older than 8 day
#mount nfs volume
mount -t nfs 01.23.45.67:/volume1/on/nas/server /mnt/backup
# remove files backup* older than 8 days
find /mnt/backup/backup* -mtime +8 -exec rm {} \;
# remove metadata file
rm -f /var/log/www.snar
#umount nfs volume
umount /mnt/backup
=======================================================================================
Задания в планировщик Cron
jobname: /etc/cron.d/backup_wwwroot_full
00 00 * * * root /opt/backup/backup_full
=======================================================================================
jobname: /etc/cron.d/backup_wwwroot_inc
00 8,16 * * * root /opt/backup/backup_incremental
=======================================================================================
jobname: /etc/cron.d/remove_wwwroot_backup
58 23 * * * root /opt/backup/remove_old_bkp
=======================================================================================
archivebackupincrementincrementaltartar archiveинкремент