Предлагаем Вашему вниманию очень простой скрипт backup.sh, который позволит Вам настроить резервное копирование файлов, а также автоматическое удаление старых файлов бэкапов.
backup.sh:
#!/bin/bash
#Список директорий для резервного копирования
DIRS=”/etc /var/www”
#Текущая дата
NOW=$(date +”%d-%m-%Y”)
#Дата, которая была месяц назад
OLD=$(date -d \’-1 month\’ +”%d-%m-%Y”)
#Директория, хранилище, диск или другое место где будет храниться backup
BACKUP=/backup
#Название файла резервной копии
FILE=”fs-full-$NOW.tar.gz”
#Старый файл резервного копирования, который необходимо удалить
OLD_FILE=$BACKUP/fs-full-$OLD.tar.gz
#Создание архива
/bin/tar -zcvpf $BACKUP/$FILE $DIRS
#Удаление старой копии
rm -f $OLD_FILE
Таким образом используя, month, week, day и операторы сложения “+” и вычитания “–” можно настроить политику хранения резервных копий. Например:
date -d \’-1 month\’ +”%d-%m-%Y”, возвращаемое значение равно дате месяц назад
date -d \’-2 week\’ +”%d-%m-%Y”, дата две недели назад
date -d \’-3 day\’ +”%d-%m-%Y”, дата три дня назад
date -d \’+1 day\’ +”%d-%m-%Y”, дата которая будет завтра, вряд ли “+” Вам понадобится для резервного копирования, но может пригодится для других целей
Создав такой скрипт, Вы помещаете его в cron на выполнение, чаще всего бэкап выполняется ежедневно ночью:
30 2 * * * /backup.sh
В ходе работы скрипта будет создан файл резервной копии с текущей датой, и удален файл бэкапа, который будет соответствовать дате в параметре OLD_FILE, в котором вы укажете как долго хранить бэкап.
Leave a Reply