
Делает полный (full backup) архив раз в неделю и периодические каждый день, потом затирает старые и пишет на них новые.
Каждый архив заливается на ftp.
Код: Выделить всё
#! /bin/sh
# скрипт полного и добавочного резервного копирования
# создан 07 февраля 2000
# Базируется на скрипте Daniel O'Callaghan <danny@freebsd.org>
# и модифицирован Gerhard Mourani <gmourani@videotron.ca>
# и еще под модифицирован Igor Znamensky <5000700@mail.ru>
# Измените следующие пять переменных под вашу систему
COMPUTER=`hostname` # имя этого компьютера
DIRECTORIES_1="/usr/local/etc" # каталог резервного копирования
DIRECTORIES_2="/var/db/" # каталог резервного копирования
BACKUPDIR_1=/files/backups/1 # где храним резервные копии
BACKUPDIR_2=/files/backups/2 # где храним резервные копии
TIMEDIR=/files/backups/last-full # где сохраняем время полной резервной копии
TAR=/usr/bin/tar # имя и расположение tar
#Вы не должны менять то, что написано ниже
#Но, если Вы уверенны в своих силах, то можно!
PATH=/usr/local/bin:/usr/bin:/bin
DOW=`date +%a` # День недели, например Mon
DOM=`date +%d` # Дата, например 27
DM=`date +%d%b` # Дата и месяц, например 27Sep
# 1-го числа каждого месяца постоянно делаем полную резервную копию
# Каждое воскресенье делаем полную копию - переписываем копию от
# последнего воскресенья
# В остальное время делаем добавочную резервную копию. Каждая добавочная
# резервная копия переписывает добавочную копию с предыдущей недели, с
# тем же именем.
#
# если NEWER = "", тогда tar создает резервные копии всех файлов в каталог,
# иначе только новее чем дата в NEWER. NEWER берет дату из файла
# записываемого каждое воскресенье.
# Ежемесячная полная резервная копия
################################
#Первый архив на основную папку#
################################
if [ $DOM = "01" ]; then
NEWER=""
$TAR $NEWER -cf $BACKUPDIR_1/$COMPUTER-$DM.tar $DIRECTORIES_1
fi
# Еженедельная полная резервная копия
if [ $DOW = "Sun" ]; then
NEWER=""
NOW=`date +%d-%b`
# Обновление даты еженедельной полной резервной копии
echo $NOW > $TIMEDIR/$COMPUTER-full-date
$TAR $NEWER -cf $BACKUPDIR_1/$COMPUTER-$DOW-1.tar $DIRECTORIES_1
# Создание добавочной резервной копии - переписывание аналогичной с
# последней недели
else
# Берем дату последней полной резервной копии
NEWER="--newer `cat $TIMEDIR/$COMPUTER-full-date`"
$TAR $NEWER -cf $BACKUPDIR_1/$COMPUTER-$DOW-1.tar $DIRECTORIES_1
fi
# Маленькая утилита которая заливает созданные архивы на FTP; для ее установки наберите pkg_add –r ncftp
# У меня по мимо локальной папки куда все это складывается еще заливается на спецовый ftp для архивов.
ncftpput -u TEST -p TEST 192.168.0.50 /upload/backups/1 /files/backups/1/$COMPUTER-$DOW-1.tar
##############################
#Второй архив на другую папку#
##############################
if [ $DOM = "01" ]; then
NEWER=""
$TAR $NEWER -cf $BACKUPDIR_2/$COMPUTER-$DM-2.tar $DIRECTORIES_2
fi
# Еженедельная полная резервная копия
if [ $DOW = "Sun" ]; then
NEWER=""
NOW=`date +%d-%b`
# Обновление даты еженедельной полной резервной копии
echo $NOW > $TIMEDIR/$COMPUTER-full-date
$TAR $NEWER -cf $BACKUPDIR_2/$COMPUTER-$DOW-2.tar $DIRECTORIES_2
# Создание добавочной резервной копии - переписывание аналогичной с
# последней недели
else
# Берем дату последней полной резервной копии
NEWER="--newer `cat $TIMEDIR/$COMPUTER-full-date`"
$TAR $NEWER -cf $BACKUPDIR_2/$COMPUTER-$DOW-2.tar $DIRECTORIES_2
fi
# Маленькая утилита которая заливает созданные архивы на FTP; для ее установки наберите pkg_add –r ncftp
# У меня по мимо локальной папки куда все это складывается еще заливается на спецовый ftp для архивов.
ncftpput -u TEST -p TEST 192.168.0.50 /upload/backups/1 /files/backups/2/$COMPUTER-$DOW-2.tar
Сразу хочу сказать, что это не мое творчество я просто его показываю тут чутка видоизмененным и все!
Оригинал http://www.opennet.ru/docs/RUS/linuxsos/ch22_1.html
Кстати, если начальство сочтет возможным разместить это пост как скромную статейку, буду очень признателен!
