cla*_*rkk 8 tar debian corruption
如何调试这个?最近几天突然出现这个问题。网站的所有备份都已损坏。
如果备份只是保留为tar
,则没有问题,但是一旦 tar 被压缩为 ,gz
或者xz
我无法解压缩它们。
有很多空闲磁盘
Local disk space 2.68 TB total / 2.26 TB free / 432.46 GB used
Run Code Online (Sandbox Code Playgroud)
tar: Skipping to next header[===============================> ] 39% ETA 0:01:14
tar: A lone zero block at 2291466===============================> ] 44% ETA 0:01:13
tar: Exiting with failure status due to previous errors
878MiB 0:00:58 [15.1MiB/s] [===================================> ] 44%
Run Code Online (Sandbox Code Playgroud)
为什么这么说Skipping to next header
?它以前从未这样做过。某些文件出现了严重错误。
目录中有大约 15k pdf、jpg 或 png 文件。
pv $backup_file | tar -izxf - -C $import_dir
Run Code Online (Sandbox Code Playgroud)
必须有一些数据破坏了压缩。
我还尝试通过执行以下操作来检查硬盘健康状况:
# getting the drives
lsblk -dpno name
smartctl -H /dev/sda
smartctl -H /dev/sdb
Run Code Online (Sandbox Code Playgroud)
在两个驱动器上我都得到了这个:
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
Run Code Online (Sandbox Code Playgroud)
如何找出损坏 tar.gz 的文件?我只想删除它们。
现在已将所有文件复制到另一台服务器,我遇到了完全相同的问题。我可以解压缩所有内容并毫无问题地提取它,但是一旦我想压缩文件,我就无法解压缩它们 (gz/xz)。
您的文件被截断或损坏,因此xz
无法到达数据的末尾。tar
抱怨是因为存档在中间停止,这是合乎逻辑的,因为xz
没有设法读取整个数据。
运行以下命令查看问题出在哪里:
cat /var/www/bak/db/2017-05-20-1200_mysql.tar.xz >/dev/null
xzcat /var/www/bak/db/2017-05-20-1200_mysql.tar.xz >/dev/null
Run Code Online (Sandbox Code Playgroud)
如果出现cat
抱怨,则该文件在磁盘上已损坏并且操作系统检测到损坏。检查内核日志以获取更多信息;通常此时需要更换磁盘。如果只是xz
抱怨,那么操作系统没有检测到任何损坏,但文件仍然无效(损坏或截断)。无论哪种方式,您都无法恢复此文件。您需要从离线备份中取回它。
归档时间: |
|
查看次数: |
5555 次 |
最近记录: |