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

tar на ленту и файл с шифрованием

Я пытаюсь зашифровать наши резервные копии на магнитной ленте, используя tar и openssl, но также записываю в локальный файл, пока у меня есть:

tar --total -czp ./tmp ./home | tee /tmp/Archive.tar.gz | tee > /dev/nst0

Я не уверен, что это правильно tee sytax, но он работает, потому что

tar -tzvf /dev/nst0

и

tar -tzvf /tmp/Archive.tar.gz

дают правильные результаты.

Однако, если я попытаюсь добавить шифрование с помощью openssl:

tar --total -czp ./tmp ./home | openssl aes-256-cbc -e -salt -pass file:/encrp_file  | tee /tmp/Archive.tar.gz | tee > /dev/nst0

Я получил :

tee: standard output: Invalid argument
tee: write error

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

Какие-либо предложения?

Это соответствующая строка из моего домашнего сценария резервного копирования:

tar czfTP - $FILELIST --use-compress-program xz | openssl bf -salt -pass file:passkey.txt | tee /backup/location/file_name.txz.bfe | dd bs=10k of=/dev/tape

Вы можете просто создать файлы резервных копий и позже скопировать их на ленту с помощью

dd if=/backup/file.tar of=/dev/tap bs=10k

И есть множество других возможных комбинаций. Я использую шифрование Blowfish, похоже, вам нужен AES, но его легко заменить. Я знаю, что другие обычно используют GPG вместо OpenSSL. Также можно настроить асимметричные ключи (AES или DSS) для генерации уникального сеансового ключа и добавления его к файловому потоку, но это немного сложнее и усложняет синтаксический анализ зашифрованного файла. Но это очень полезно для сред, в которых резервная копия будет отправляться за пределы объекта, и вы не хотите, чтобы люди на месте могли вмешиваться в резервные копии.

Я пробовал следующее, и он работал над расшифровкой:

$ tar --total -czp /home |openssl aes-256-cbc -e -salt -pass file:pass.txt | tee /tmp/archive.tgz.encrypted > /tmp/archive2.tgz.encrypted

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

Итак, расшифровка выглядит так:

$ openssl aes-256-cbc -d -salt -pass file:pass.txt -in /tmp/archive.tgz |tar --total -xzvf -

и я не получаю ошибок.

Комментарий b0fh к вашему сообщению правильный. Правильный синтаксис «тройника» соответствует

$ command | tee outputfile1 > outputfile2