У меня есть несколько удаленных серверов и один сервер резервного копирования, я использую 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, он может уже выполнять внутреннее прозрачное сжатие для всех ваших файлов.