間違い

間違い

これをデバッグする方法は?この問題は過去2日間に突然現れました。ウェブサイトのすべてのバックアップが破損しています。

バックアップをそのままにしておくとtar問題はありませんが、tarが圧縮されると、それ以外の場合はgz解凍xzできません。

利用可能なディスクが多い

Local disk space    2.68 TB total / 2.26 TB free / 432.46 GB used

間違い

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%

なぜそのようなことを言うのですSkipping to next headerか?以前は一度も行ったことはありません。いくつかのファイルに深刻な問題があります。

ディレクトリには約15,000個のpdf、jpg、またはpngファイルがあります。

注文する

pv $backup_file | tar -izxf - -C $import_dir

圧縮を破るデータが必要です。

また、次のようにしてハードドライブの状態を確認してみました。

# getting the drives
lsblk -dpno name

smartctl -H /dev/sda
smartctl -H /dev/sdb

両方のドライブで以下を取得します。

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

tar.gzが破損したファイルを見つける方法は?ただ削除したいです。

修正する

これで、すべてのファイルを別のサーバーにコピーしましたが、同じ問題が発生しました。すべてを圧縮して問題なく抽出できますが、ファイルを圧縮したい瞬間に解凍することはできません(gz / xz)。

ベストアンサー1

ファイルが切り捨てられたか破損しているため、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

苦情を申し立てると、ディスク上catのファイルが破損し、オペレーティングシステムが破損を検出しました。詳しくはカーネルログをご覧ください。通常、この時点でディスクを交換する必要があります。単に文句を言うだけで、xzオペレーティングシステムは破損を検出できませんでしたが、ファイルはまだ有効ではありません(破損または切り捨て)。どちらの方法でもファイルを回復することはできません。オフラインバックアップから復元する必要があります。

おすすめ記事