LINUX.ORG.RU

«real-time» backup


0

0

Доброго времени суток!

Хочется сделать такую вещь:

некий демон на клиенте мониторит файлы в заданных каталогах на предмет изменения, и, при его обнаружении, отправляет их (лучше только diff`ы) на сервер. Демон либо висит в памяти, либо запускается достаточно часто, чтобы резервная копия на сервере обновлялась спустя малый промежуток времени после изменения файлов.

кто-нибудь встречал что-то подобное?

спасибо.

Первый вариант, дословно выполняющий условия задачи:

audit + bash(perl) + diff + ftp/nfs/scp/rcp/...

1) Вешаем audit на "прослушку" определённых файлов
2) в баше/перле в бесконечном цикле (sleep 10, напр.) анализируем последние строки /var/log/audit/audit.log.
3) При выявлении нашего "пациента" сравниваем diff'ом его содержимое с предварительно сохранённой копией предыдущей правки файла.
4) Если есть различия - отправляем на сервер, сохраняем текущий файл как предыдущую копию.

Второй вариант: уже подсказали. rsync по крону с, кажись, --backup-dir. В качестве имени этого --backup-dir можно использовать вывод date (man date на предмет формата вывода).

Второй вариант не является точным выполнением условий задачи, но формировать диффы можно потом на самом сервере...


Slavaz ★★★★★
()

Мне понравилось вот это:

http://folk.uio.no/johnen/bontmia/

RSync + cp -lR + ротация бэкапов на shell

Я небольшой напильник приложил, теперь бэкапы выглядят так:

$du -sh /home/backup/*
8,0K 20081019-11:57.log
4,0K 20081019-12:06.log
28K 20081019-15:14.fullog
112K 20081019-15:14.log
5,0G 20081019-15:22
8,0K 20081019-15:22.log
44K 20081020-04:22.log
139M 20081021-04:22
32K 20081021-04:22.log
125M 20081022-04:22
40K 20081022-04:22.log
103M 20081023-04:22
36K 20081023-04:22.log
141M 20081024-04:22
152K 20081024-04:22.log
115M 20081025-04:22
48K 20081025-04:22.log
138M 20081026-04:22
84K 20081026-04:22.log
107M 20081027-04:22
80K 20081027-04:22.log
232M 20081028-04:22
116K 20081028-04:22.log

Как видите, место занимает только первый бэкап за 19 число. Все остальные инкрементальные с жесткими ссылками.

Если вы нишеброд и места для хранения изменившихся файлов целиком у вас нет, то можете посмотреть duplicity. Он сохраняет только diff (через rdiff, вроде). Однако взамен существенного уменьшения размера инкрементальных бэкапов вы получите более геморройный просмотр бэкапа за конкретное число. Вроде как придеться смотреть только через через вызов duplicate. Плюс к этому нужно искать к нему ротацию бэкапов.

Есть ещё dar. Хорош лишь для записи на диски. Хранить изменения полностью. Плюс в составе катализатор есть. В результате для конкретного файла за конкретное число нужен одни бэкап. (У duplicity, естественно, все сразу — как никак diff'ы)

anonymous_num_0
()
Ответ на: комментарий от anonymous_num_0

Ах, да. Если нужно более частую запись изменений, то это уже никак не бэкапы. Читайте про CVS/SVN.

anonymous_num_0
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.