我正在使用如下所示的命令进行备份:
ionice -c3 tar -ch data | lbzip2 -n 4 | ionice -c3 tee /mnt/smb/out.tar.bz2 > /dev/null
之后,我试图从备份恢复数据:
lbzip2 -cd -n 10 /mnt/smb/out.tar.bz2 | tar -x
在开始一小时后,由于文件完整性错误,lbzip2失败。
/ mnt / smb是使用SMB协议访问的Windows机器上的RAID 1设备。
我怀疑在写入磁盘或用smb发送数据时出错,但不确定。
所以,我有两个问题:
tar -c ... \ | tee >(md5sum >/tmp/tar.md5) \ | lbzip2 \ | tee >(md5sum >/tmp/bz2.md5) \ > /mnt/smb/out.tar.bz2
然后你可以检查
md5sum /mnt/smb/out.tar.bz2
并查看它是否返回与/tmp/bz2.md5中保存的相同的内容。 如果是这样,那么你应该没有存储问题,我会感兴趣的确切lbzip2错误信息,以及是否可以通过官方bzip2解压缩保存的文件。 谢谢。 (请随时通过电子邮件与我联系。)
但是,真的,摆脱所有这些pipe道之前…
既然你的目的地是一个Windows机箱上的CIFS共享,为什么不在Windows端使用Windows压缩的文件系统,而只是在Linux端使用普通的tar(不压缩)呢?
这样你就可以把压缩负载放在窗口盒子上 – 并且摆脱很多复杂性。
顺便说一句:你检查了networking连接的窗口框? 你有任何networking错误?
netstat -in ethtool -S eth0|grep -vw 0 (用CIFS连接使用的网卡replaceeth0)