カテゴリ:ソフト開発日誌
tar を使ってマシン間のコピーをしていた。次のようなコマンドラインだ。machine_from マシン上の /copy-from-base-directory/copy-directory ディレクトリとそこに格納されているファイル全てを machine_to マシン上の /copy-to-base-directory/copy-directory へコピーする操作だ。
furuta@machine_from:/copy-from-base-directory $ tar zcvf - copy-directory | ssh furuta@machine_to 'cd /copy-to-base-directory; tar zxvf -' rsync の方が楽では?と言われるとそうだ。 見慣れないエラーが出力された。%lld の所はファイルサイズより小さい値だった。 tar: path/file: %lld バイト小さくなったので、ゼロで埋めます 何が起きたか初めは理解できなかった。コピーした先のファイルサイズは一致している。アプリケーションで path/file を開くとアプリが動かなくなった。tar でコピーしてファイルが壊れたらしい。machine_from と machine_to マシン上で md5sum path/file を実行して比較してみることにした。machine_from 上で実行した md5sum が "入力/出力エラーです" (Input/output error) で止まった。 machine_from のディスクが壊れた? dmesg で確認すると Medium error が記録されていた。そうか、送り側の tar は先にファイルサイズの情報を送っているから、それに見合うデータが来ないと受け側の tar で「ゼロで埋めます」エラーが表示されるのか。 仮想マシン 1 台全損かな... サーバーマシンを引っ越ししようとすると、なぜか引っ越し前に壊れるのは気のせい? お気に入りの記事を「いいね!」で応援しよう
最終更新日
2017.03.22 01:46:51
コメント(0) | コメントを書く
[ソフト開発日誌] カテゴリの最新記事
|
|