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