LINUX.ORG.RU
ФорумAdmin

rsync, изменения за день

 


2

3

Samba диск сложной структуры, где в основном офисные файлы (doc/odt, pdf). Пользователи активно изменяют данные и могут свои файлы удалить или изменить. После чего возникают просьбы отменить изменения на неопределенную дату.

Сейчас ночью на сервере через rsync создается полная копия диска. При этом две проблемы: возврат возможен только на один день, полная копия диска не требуется.

Нужен сетевой диск с «машиной времени »: создавать каталоги по дате синхронизации и в нем изменившиеся или удаленные файлы со структурой каталогов. Похоже на разностный backup, только в читаемом пользователями виде.

★★

1. Наконец-то запилить нормальный бэкап хранящий по вкусу full/diff/inc .. за…… период времени.
2. Сказать пользователям что это невозможно.
3. Профит!

anc ★★★★★
()

У rsync есть опция --link-dest, на ее основе можно сделать инкрементальный бэкап. Но полные резервные копии делать раз в несколько недель я бы все таки советовал.

rumgot ★★★★★
()

1) Выкинуть rsync, как уже предлагали и заюзать ну хотя бы тот же restic;
2) Сменить ФС, где лежат данные пользователей на ту, которая умеет в снапшоты(zfs/btrfs, если хочется экзотики - nilfs2)

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

zfs/btrfs

А там можно как в lvm на лету создавать / удалять/ менять размер разделов? Т.е. в принципе можно вообще отказаться от lvm и использовать эти фс?

rumgot ★★★★★
()
Последнее исправление: rumgot (всего исправлений: 1)
Ответ на: комментарий от rumgot

ага

я так понимаю тс, на бутере/зфс нужно каждый день делать копию (CoW-копию) хранилища и в новой накатывать изменения через rsync (коль так сильно желание его использовать) тогда будет куча директорий с датой в названии, содержащее срез хранилища на указанный день.
за счет CoW идентичные блоки данных будут общими.

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 1)
#!/bin/sh

DATETIME=`date +%Y-%m-%d_%H:%M:%S`
SOURCE_DIR=/home/m/Share/src
BACKUP_DIR=/home/m/Share/backups

BACKUP_PATH=${BACKUP_DIR}/${DATETIME}
LATEST_LINK=${BACKUP_DIR}/latest

mkdir -p ${BACKUP_DIR}

rsync -av --delete-after -A -X  ${SOURCE_DIR}/ --link-dest ${LATEST_LINK}/  ${BACKUP_PATH}/

rm -rf ${LATEST_LINK}
ln -s ${BACKUP_PATH} ${LATEST_LINK}



С помощью интернета и правок получился такой скрипт.
В $BACKUP_DIR создаются каталоги по времени запуска скрипта.
Общие файлы хранятся один раз за счет ссылок.

WinLin2 ★★
() автор топика
Ответ на: комментарий от rumgot

по крайней мере в zfs это не совсем так устроено, выделять именно разделы (zvol) для монтирования из пула не особо-то и надо обычно, хотя и можно. Есть dataset-ы, на них можно выставлять квоты.

arkhnchul ★★★
()
Ответ на: комментарий от rumgot

В zfs/btrfs по умолчанию все разделы(там немного разная терминология dataset/subvolume, но пусть будут «разделы») делят между собой ВСЮ ёмкость ФС. Если нужно ограничить аппетиты отдельного раздела - настраивается квота.

Собственно это и является одним из ощутимых плюсов по сравнению с LVM - есть возможность логического разграничения, без принудительного ограничения по максимуму потребляемого места.

В ZFS есть еще хорошая штука - reservation. Позволяет гарантированно выделить определенный объем разделу. Собственно zfs dataset с одинаково выставленным по размеру quota и reservation аналогичен отдельному LVM-тому в плане выделения места.

Pinkbyte ★★★★★
()