Безопасность и оптимизация Linux.Редакция для Red Hat



         

Автоматизация задачи резервного копирования при помощи tar


Всегда интересно автоматизировать задачу резервного копирования. Автоматизация предлагает огромные возможности использования вашего Linux сервере для целей, которые вы поставили. Следующий пример, представляет из себя скрипт для резервного копирования, называемый “backup.cron”. Этот скрипт написан для запуска на любом компьютере, при этом, вы должны поменять только четыре переменные: COMPUTER, DIRECTORIES, BACKUPDIR и TIMEDIR. Мы считаем, что вы устанавливаете этот сценарий для запуска его в начале месяца для получения полной резервной копии, а затем используете его в течении месяца для получения добавочных копий. В нашем примере, мы создаем резервную копию в каталоге на локальном сервере (BACKUPDIR), но вы можете изменить это для использования ленты на локальном сервере или смонтированной файловой системы NFS.
Шаг 1

Создайте скрипт резервного копирования backup.cron (touch /etc/cron.daily/backup.cron) и добавьте в него следующие строки: #!/bin/sh # скрипт полного и добавочного резервного копирования # создан 07 февраля 2000 # Базируется на скрипте Daniel O'Callaghan <danny@freebsd.org>

# и модифицирован Gerhard Mourani <gmourani@videotron.ca>

# Измените следующие пять переменных под вашу систему COMPUTER=deep # имя этого компьютера DIRECTORIES="/home" # каталог для резервного копирования BACKUPDIR=/backups # где храним резервные копии TIMEDIR=/backups/last-full # где сохраняем время полной резервной копи TAR=/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/$COMPUTER-$DM.tar $DIRECTORIES fi # Еженедельная полная резервная копия if [ $DOW = "Sun" ]; then   NEWER=""   NOW=`date +%d-%b`   # Обновление даты еженедельной полной резервной копии   echo $NOW > $TIMEDIR/$COMPUTER-full-date   $TAR $NEWER -cf $BACKUPDIR/$COMPUTER-$DOW.tar $DIRECTORIES   # Создание добавочной резервной копии – переписывание аналогичной с   # последней недели else   # Берем дату последней полной резервной копии   NEWER="--newer `cat $TIMEDIR/$COMPUTER-full-date`"   $TAR $NEWER -cf $BACKUPDIR/$COMPUTER-$DOW.tar $DIRECTORIES fi




Содержание  Назад  Вперед