Как стать автором
Обновить

Бэкап на linux

Время на прочтение1 мин
Количество просмотров1.7K
В один прекрасный день мне понадобился скрипт бэкапов. Рассматривал большое количество различных вариантов. Многие не устроили по причине громоздкости. В итоге я написал свой скрипт :)

Для бэкапа сайтов на веб-сервере — очень полезно и просто :) Пожелания по улучшению — приветствуются



#!/bin/bash
PATH_TO_ADIR="/var/www" # бэкапим все в этом каталоге
PATH_TO_BDIR="/var/backup" #сюда складываем бэкап
BACKDAYS="5" #сколько дней храним бэкапы

# создаем директорию, если такой не существует
if [ ! -d "$PATH_TO_BDIR/$(date +%Y-%m-%d)" ]; then
mkdir $PATH_TO_BDIR/$(date +%Y-%m-%d)
fi

# тут мы бэкапим данные
for file in $( /bin/ls $PATH_TO_ADIR);
do
/usr/bin/nice -n 5 tar zcfP $PATH_TO_BDIR/$(date +%Y-%m-%d)/$file-SITE-$(date +%Y-%m-%d).tgz $PATH_TO_ADIR/$file
done

DATM=`/bin/date -d '-'$BACKDAYS' day' +%Y%m%d`
NOW=`/bin/date +%Y%m%d`
DATH=`/bin/date --date="$i" +%Y%m%d`

# а тут мы удаляем старые бэкапы
for i in `ls $PATH_TO_BDIR/ | awk '{print $1}'`
do
if [ $DATH -le $DATM ];then
/bin/rm -Rf $PATH_TO_BDIR/$i
fi
done


Теперь добавляем задание в крон и выполняем его ежедневно, например в 3 часа ночи.
Теги:
Хабы:
-4
Комментарии15

Публикации