1

Я хочу эффективно создать резервную копию зашифрованной копии моего жесткого диска. В настоящее время я использую rsync для резервного копирования незашифрованной копии, и я считаю, что это достаточно эффективно.

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

Я думаю, что было бы хорошо работать, если бы я мог зацикливаться / связывать монтирование / и резервное копирование зашифрованной точки монтирования. Я посмотрел на eCryptfs и EncFS, но они оба, похоже, монтируют только зашифрованные каталоги и не позволяют шифровать смонтированный каталог. Они оба поддерживают шифрование имени файла, что также является желательной функцией.

Если бы у меня могла быть зашифрованная версия моей файловой системы, тогда моя существующая rsync-backup работала бы эффективно. Когда очень мало что изменилось, нужно шифровать только имена файлов.

Есть ли способ зашифровать подключенный каталог как другой каталог? Любые другие предложения?

1 ответ1

4

тьфу, я потратил слишком много времени на поиск ответа, прежде чем отправлять этот вопрос, и теперь я нахожу параметр --reverse для encfs делает то, что я хочу. вот мой резервный скрипт:

#!/bin/bash
set -e
set -u
CP="/usr/bin/sudo /usr/bin/rsync -aAhHPxX --delete-excluded --del --ignore-errors --rsync-path=\"rsync --fake-super\" $*"
SOURCE='/'
MOUNTPOINT='/tmp/slash'
DEST='backupuser@backuphost:backupdir'

mkdir -p $MOUNTPOINT
mount -t fuse.encfs | grep "^encfs on $MOUNTPOINT type fuse.encfs" || /usr/bin/sudo /usr/bin/encfs --reverse $SOURCE $MOUNTPOINT

#don't cross mount points
EXCLUDE_LIST=$(encfsctl encode $SOURCE `/usr/bin/cut -d\  -f 2 /proc/mounts | /bin/grep -v ^$SOURCE$`)
EXCLUDE=''
for EXCLUDE_ITEM in ${EXCLUDE_LIST} ; do
  EXCLUDE="${EXCLUDE} --exclude ${EXCLUDE_ITEM}"
done

/usr/bin/rsync -haxHAXPR $SOURCE/.encfs* $DEST/../
#eval for the quotes in the CP command
eval $CP $EXCLUDE $MOUNTPOINT/ $DEST/

и восстановить файл:

CP='/usr/bin/sudo /usr/bin/rsync -haxHAXPR --no-implied-dirs --rsync-path="rsync --fake-super"';
SOURCE='/';
DEST='backupuser@backuphost:backupdir';
MOUNTPOINT='/tmp/slash';
ENCRYPTED_NAME=$(encfsctl encode $SOURCE $*);
eval $CP $DEST/./$ENCRYPTED_NAME $MOUNTPOINT

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .