我正在尝试将我们的在线备份转储到磁带;出于显而易见的原因,我想加密磁带上的数据,所以要写入磁带,我需要将所有内容压缩,将其传输到 openssl 进行加密,然后将其写入磁带:
tar c /etc | openssl aes-128-cbc -salt -pass "pass:Test123" | dd of=/dev/nst0
但是,似乎 dd 不喜欢这样。从 tar 直接写入磁带可以正常工作:
svr-bup1 # tar cf /dev/nst0 /etc
tar: Removing leading `/' from member names
svr-bup1 #
将 dd 添加到链中并中断:
svr-bup1 # tar c /etc | dd of=/dev/nst0
tar: /dev/nst0: Cannot open: Device or resource busy
tar: Error is not recoverable: exiting now
0+0 records in
0+0 records out
0 bytes (0 B) copied, 9.6274e-05 s, 0.0 kB/s
无论是否使用 openssl 命令,都会发生同样的情况;我在上面省略了它以简化测试。
mt 命令工作正常(设置了环境变量 TAPE):
svr-bup1 # mt status
SCSI 2 tape drive:
File number=6, block number=0, partition=0.
Tape block size 0 bytes. Density code 0x46 (LTO-4).
Soft error count since last status=0
General status bits on (81010000):
EOF ONLINE IM_REP_EN
svr-bup1 # mt rewi
svr-bup1 #
硬件是 HP 1720 LTO4 SAS 驱动器,在 CentOS 6 上使用 mpt2sas 驱动程序。
默认情况下,您的版本
tar
似乎正在尝试写入磁带设备,而不是标准输出。它似乎是 GNUtar
。自动检测磁带驱动器是 GNU tar 1.11.5 版本之前的默认设置,我怀疑你有这么旧的版本。默认情况下,其他 UNIX 系统上的 tar 版本也可能会尝试写入磁带设备。f
通过指定ile强制 tar 写入标准输出-
: