Нужно какое-то программное обеспечение (Debian) для создания резервных копий. Обычно есть несколько папок, с ~ 10 КБ файлов, общий размер почтового индекса ~ 5 ГБ. Хочу создать 7 бэкапов макс. то есть - удалить самый старый каждый день.

т.е. нужна папка с 7 yyyy-mm-dd.tar.gz файлами внутри с последними архивами. Уверен, что существуют какие-то стандартные консольные программы для автоматизации этого?

3 ответа3

3

Как вы говорите, для этого существует множество стандартных программ. Для этой цели я сейчас использую собственный скрипт оболочки. В будущем я перенесу его на Perl, чтобы сигнализировать об успехах и сбоях в панели управления. Я уже реализовал аналогичную концепцию для резервных копий MySQL из шести серверов, они обновляют статус в Amazon SimpleDB, и у меня есть панель для проверки статуса.

Вот мой сценарий:

#!/bin/sh

HOSTNAME=MYHOSTNAME                               # name of this computer
DIRECTORIES="/var/www /etc/ /var/backup/database" # directories to backup
BACKUPDIR=/mnt/backup                             # where to store the backups
TIMEDIR=/mnt/backup/last-full                     # where to store time of full backup
TAR=/bin/tar                                      # name and location of tar

PATH=/usr/local/bin:/usr/bin:/bin
DOW=`date +%a`                          # Day of the week e.g. Mon
DOM=`date +%d`                          # Date of the Month e.g. 27
DM=`date +%d%b%Y`                       # Date and Month e.g. 27Sep2010

# On the 6 of the month a permanent full backup is made
# Every Sunday a full backup is made - overwriting last Sundays backup
# The rest of the time an incremental backup is made. Each incremental
# backup overwrites last week incremental backup of the same name.
#
# if NEWER = "", then tar backs up all files in the directories
# otherwise it backs up files newer than the NEWER date. NEWER
# gets its date from the file written every Sunday.

# Monthly full backup
if [ $DOM = "06" ]; then
    NEWER=""
    $TAR $NEWER -cf $BACKUPDIR/$HOSTNAME-$DM.tar $DIRECTORIES
fi

# Weekly full backup
if [ $DOW = "Sun" ]; then
    NEWER=""
    NOW=`date +%d-%b`

    # Update full backup date
    echo $NOW > $TIMEDIR/$HOSTNAME-full-date
    $TAR $NEWER -cf $BACKUPDIR/$HOSTNAME-$DOW.tar $DIRECTORIES

# Make incremental backup - overwrite last weeks
else

    # Get date of last full backup
    NEWER="--newer `cat $TIMEDIR/$HOSTNAME-full-date`"
    $TAR $NEWER -cf $BACKUPDIR/$HOSTNAME-$DOW.tar $DIRECTORIES
fi
1

Для этого типа резервного копирования лучше использовать rsync . Rsync - это специальная утилита для этого, она может создавать инкрементные резервные копии, сравнивая предыдущие и новые резервные копии.

Если вы хотите, вы можете объединить rsync с logrotate.

0

Я поклонник полных резервных копий на основе жестких ссылок, поскольку в большинстве приложений они занимают лишь немного больше места, чем инкрементные резервные копии, но все же предлагают полную роскошь полных резервных копий.

Инструментом для автоматизации резервного копирования на основе жестких ссылок является rsnapshot, основанный на rsync. Вы также можете напрямую использовать rsync с --link-dest чтобы включить связывание с предыдущей резервной копией для неизмененных файлов. Тем не менее, rsnapshot предлагает вам все мета-функции (хранение n резервных копий, удаление старых и т. д.).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .