Как сделать резервную копию 50 ГБ + файлов на Linux-сервере в удаленную учетную запись sftp.
Мои требования
Мое решение
В настоящее время я использую rsnapshot для создания одной локальной резервной копии каждый день. Затем храните еженедельные, ежемесячные резервные копии с помощью rsnapshot. Затем каждый месяц делаю полную резервную копию с помощью tar, которую я шифрую с помощью gpg2 перед отправкой своему другу.
Затем я делаю инкрементное резервное копирование уровня 1, используя файл моментального снимка из полной резервной копии.
Но, к сожалению, это не работает. Потому что каждый раз, когда выполняется rsnapshot, мои файлы получают новые даты и, возможно, другие вещи. И похоже, что tar использует дату только для проверки, изменился ли файл или нет.
Вопросы
Пример кода
Это упрощенная версия моего сценария, иллюстрирующая проблему.
cd ~
mkdir backup-test
cd backup-test
mkdir data
mkdir rsync-copy
mkdir backup
# Create 10 10mb files
for i in 0 1 2 3 4 5 6 7 8 9
do
dd if=/dev/urandom of=data/file$i.txt bs=1048576 count=10
done
# Simulate rsnapshot of my files.
rsync data/* rsync-copy/
# Make full backup
/opt/bin/tar c -g backup/full.snar rsync-copy --file backup/full.tar
# Simulate rsnapshot of my files again. No changes in my files.
rsync data/* rsync-copy/
# Make incremental backup, this will create a new full copy.
cp backup/full.snar backup/inc.snar
/opt/bin/tar c -g backup/inc.snar rsync-copy --file backup/inc.tar
# Make incremental backup, this will not create a new full copy.
# Because we haven't executed rsync, which sets dates and stuff.
cp backup/inc.snar backup/inc2.snar
/opt/bin/tar c -g backup/inc2.snar rsync-copy --file backup/inc2.tar
Мне кажется, вам нравится rsnapshot, но не tar. Если это так, решение состоит в том, чтобы заменить tar чем-то, что сохраняет «единственные изменения» rsnapshot.
Я могу придумать два простых варианта:
после rsnapshot найдите различия между последним и предыдущим снимками, чтобы сохранить только их в файле tar. Это могло быть просто diff
, с некоторыми флагами, которые говорят ему не беспокоиться о проверке содержимого, чтобы определить точную разницу. Списка измененных файлов должно хватить. Другой способ - написать сценарий, который будет просматривать как снимки, так и сообщать о новых файлах и файлах с разными номерами inode.
использовать rdiff-backup
, который использует алгоритм rsync, но сохраняет различия вместо их передачи.