Скрипт, делающий снапшоты конфигурации сервера и данных

Апр 17th, 2015 | Posted by | Filed under Debian, Linux, Lubuntu, PC, Software, Ubuntu

Скрипт, делающий снапшоты директории /etc и /var. Снапшоты /var делаются только в «ежедневную» директорию, /etc — в «ежедневную», «еженедельную» и «ежемесячную». В случае перезаписи или удаления оригинальных файлов, их можно вытащить из снапшотов. В качестве параметра скрипт принимает букву, указывающую на тип снапшота (d|w|m)

bksnap.sh:

#!/bin/sh
BASEBK=/snapshots
case $1 in
»)
echo Запуск:
echo Без параметров — вызов этой справки
echo d — ежедневный снапшот в директорию с номером дня
echo w — еженедельный снапшот
echo m — ежемесячный снапшот
exit 0
;;
m)
rm -rf $BASEBK/m-3 2>/dev/null
mv $BASEBK/m-2 $BASEBK/m-3 2>/dev/null
mv $BASEBK/m-1 $BASEBK/m-2 2>/dev/null
mv $BASEBK/m $BASEBK/m-1 2>/dev/null
mkdir $BASEBK/m
cp -ral /etc $BASEBK/m/
rm -Rf $BASEBK/m/etc/cron*
cp -ra /etc/cron* $BASEBK/m/etc/
;;
w)
rm -rf $BASEBK/w-21 2>/dev/null
mv $BASEBK/w-14 $BASEBK/w-21 2>/dev/null
mv $BASEBK/w-07 $BASEBK/w-14 2>/dev/null
mv $BASEBK/w $BASEBK/w-07 2>/dev/null
mkdir $BASEBK/w
cp -ral /etc $BASEBK/w/
rm -Rf $BASEBK/w/etc/cron*
cp -ra /etc/cron* $BASEBK/w/etc/
;;
d)
DATE=`date +%d`
rm -rf $BASEBK/d$DATE 2>/dev/null
mkdir $BASEBK/d$DATE
cp -ral /etc /var $BASEBK/d$DATE/
rm -Rf $BASEBK/d$DATE/etc/cron*
cp -ra /etc/cron* $BASEBK/d$DATE/etc/
esac
exit 0

No comments yet.