Предлагаем Вашему вниманию очень простой скрипт 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, в котором вы укажете как долго хранить бэкап.
Hey. I sent a screenshot. Did you get it?
У вас что-то не то с кавычками в скрипте