Назад | Перейти на главную страницу

Как сжать файлы перед запуском удаленного резервного копирования Rsnapshot?

У меня есть несколько удаленных серверов и один сервер резервного копирования, я использую Rsnapshot для удаленного резервного копирования на сервере резервного копирования. В моем плане я хочу сначала запустить сценарий оболочки для сжатия файлов, а затем Rsnapshot сможет создать резервную копию сжатых файлов. В конфигурационном файле Rsnapshot я обнаружил cmd_preexec, и я хочу его использовать, но не знаю, как написать сценарий сжатия. Кто-нибудь может мне помочь со сценарием?

Любая помощь будет признательна. Спасибо.

Вопрос в том, ПОЧЕМУ вам нужно сжатие?

Сжатие для повышения скорости передачи

Если вы хотите уменьшить скорость передачи, вы можете добавить параметр в rsync, чтобы включить сжатие на лету во время передачи:

rsync_short_args -az (источник)

Сжатие для уменьшения требований к пространству на резервном диске

rsnapshot довольно плохо работает со сжатыми резервными копиями. Я нашел решение для сжатия файлов на резервном сервере:

(...) НЕКОТОРЫЕ файлы во (2-м и последующих) наборах архивов могут быть сжаты, те, которые не находятся в связанном наборе.

find daily.1 -links 1 -size +1M ! -name "*.bz2" -print | grep -v \.svn | xargs pbzip2 -v

Вернуть

find daily.1 -links 1 -name "*.bz2" -print | xargs pbzip2 -d -v

Запустите это только со вторым набором архивов (например, ежечасно.1, ежедневно.1 или еженедельно.1) самого короткого в вашей конфигурации.

(источник).

Если вы хотите без помех уменьшить требования к пространству, вы также можете использовать прозрачное сжатие в самой целевой файловой системе. Я знаю, что ZFS и BTRFS предлагают это изначально. Если ваш жесткий диск - SSD, он может уже выполнять внутреннее прозрачное сжатие для всех ваших файлов.