gifts2017

Разностный бэкап каталогов в *nix системе

Опубликовал mozz mozz (mozz) в раздел Администрирование - Архивирование (backup)

Скрипт для создания разностных резервных копий с использованием rsync

backup.sh - сам скрипт

переменная BACKUP_DIR - путь куда складывать бэкапы

файл backup_src.lst - список каталогов которые бэкапим

файл backup_include.lst - список расширений файлов, которые добавляем в бэкап (если он пуст то по умолчанию все, кроме обозначенных в backup_exclude.lst)

файл backup_exclude.lst - список расширений файлов, которые НЕ добавляем в бэкап.

Требует наличия установленного rsync

Скрипт писался и тестировался на FreeBSD 8.1 на других системах не тестировал, если протестируете на какой-нибудь другой системе - отпишитесь пожалуйста.

Немного отредактировал скрипт спасибо  awk за подсказку.

Скачать файлы

Наименование Файл Версия Размер
adm_v2.zip 16
.zip 1,17Kb
21.03.11
16
.zip 1,17Kb Скачать
adm.zip 9
.zip 1,15Kb
21.03.11
9
.zip 1,15Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Василий Казьмин (awk) 18.03.11 13:09
Замени:
FILES_SRC=/root/adm/backup_src.lst
INCLUDE_FILES_PATTERN=/root/adm/backup_include.lst
EXCLUDE_FILES_PATTERN=/root/adm/backup_exclude.lst
на:
ETC_DIR=/usr/local/
FILES_SRC=$ETC_DIR/backup_src.lst
INCLUDE_FILES_PATTERN=$ETC_DIR/backup_include.lst
EXCLUDE_FILES_PATTERN=$ETC_DIR/backup_exclude.lst
и будет супер... правда не тестил.
2. mozz mozz (mozz) 18.03.11 14:01
Согласен, немного не оптимизировал код.
3. 1 1 (dfxi) 28.04.11 13:36
Пожалуйста, напишите комментарии для каждой команды скрипта.
4. mozz mozz (mozz) 28.04.11 14:06
(3) Мне проще будет ответить на вопрос какой кусок кода непонятен. Если что-то непонятно - спрашивайте - отвечу.
5. dfxi dfxi (agr) 14.02.12 12:01
Хорошо бы увидеть Ваш вариант для сетевого бекапа. Чтобы данные сохранялись на другом компьютере в сети.
6. dfxi dfxi (agr) 29.02.12 11:58
На основании ващего скрипта, выполняю бэкап в сетевой каталог.

# полный путь к вашему списку каталогов
BACKUP_LST=/mnt/data/skript/backup/backup.list
BACKUP_DIR=/home/user/data/nas
#удаленный сервер
BACKUP_SERVER=192.168.Х.ХХХ
#пользователь удаленного сервера
BACKUP_USER=user
EXCLUDE_FILES_PATTERN=/mnt/data/skript/backup/backup.exclude

for Res in `cat ${BACKUP_LST}`; do

echo $Res
ssh $BACKUP_USER@$BACKUP_SERVER mkdir -p $BACKUP_DIR$Res
rsync -e ssh -avq $Res $BACKUP_USER@$BACKUP_SERVER:$BACKUP_DIR$Res \
--exclude-from=$EXCLUDE_FILES_PATTERN
done
7. mozz mozz (mozz) 29.02.12 15:35
(6) agr, а зачем строчка: ssh $BACKUP_USER@$BACKUP_SERVER mkdir -p $BACKUP_DIR$Res ?
Разве rsync не создает каталог, если он не существует?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа