Solaris10ファイルコピーの失敗

このQ&Aのポイント
  • Solaris10(X64)環境におけるファイルコピーでのトラブルについて解説します。
  • 大容量のファイルをコピーする際に発生する解凍エラーの原因として、コピー元とコピー先が異なることが挙げられます。
  • 問題はディスクではなく、マザーボード、CPU、メモリなど別のハードウエアに起因する可能性があります。
回答を見る
  • ベストアンサー

Solaris10ファイルコピーの失敗

Solaris10(X64)環境に於けるトラブルについて教えてください。 ある時、定期的に取っているバックアップファイル(tarファイル) が解凍できなくなっていることに気づきました。 調べてみると、解凍できないのは『比較的大きなファイルをコピー する(数Gバイト)と、コピー元とコピー先が異なる(ファイルが壊れ る。)』ことによることが判りました。 例えば、次のコマンドです。 cp /export/.../backup/2012_08_30_f.tar . cmp -l /export/.../backup/2012_08_30_f.tar ./2012_08_30_f.tar 8244928138 241 201 1.上の例で使用する『2012_08_30_f.tar』は16Gバイトの容量があ ります。 2.上の例にもあるとおり、必ず第5ビットの"1"が"0"になってしま います。これまで何度も試しましたが、例外はありません。 3.ファイルコピー実行中にコンソールウインドウや "/var/adm/messages"ファイルにエラーもワーニングも発生しま せん。 4.format -> analyze -> read コマンドによるディスクの走査も行 いましたが、エラーは見つかりません。 5.容量の小さなテキストファイルのコピーもいつも行っています が、問題が発生したことはありません。 6.このパソコンはディスクを2台使用していますが、どちらのディ スクでも同じ問題が生じるようです。 原因はディスクではなく、マザーボード、CPU、メモリなど、他の ハードウエアにあるのではないかと考えていますが、全く調査方法 が判りません。 皆さんのアイデアをお寄せください。

  • trka
  • お礼率66% (12/18)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

No.1 , No.2 です。 回答ありがとうございました。 ちなみにですが、tarコマンドを使用して書庫化する時に、ディレクトリ名指定ではなく、ファイル名指定にしてみてください。 理由は、ディレクトリ名指定の場合(もしくはワイルドカード指定等の場合)、そこで対象となったファイルが格納される順序に決まりがない為です。

trka
質問者

補足

自己回答です。 1年以上かかりましたが、問題を解決することができましたのでご報告し、ベストアンサーにさせていただきます。 調べてみるとこのパソコンは他にも次のような問題があることが判りました。 1.負荷が上がると勝手にリブートする。 2.時々panicを起こす(原因となるソフトウエアはてんでバラバラ。)。 3.時々cpufaultが起こる(faultが起こるコアもてんでバラバラ)。 4.RAMチェックのプログラムを走らせると結構引っかかる。 ぼろぼろですね。 私は『何かの熱暴走だ。』と仮定しておりましたが、今年の秋、寒くなって、且つ大して負荷をかけなくとも同様の現象が発生する事態となりました。 そこで、あらためて原因を探しだしたところ、BiosのCPUクロックの: Turbo CORE の設定が異常に高い数値に設定されていることが判りました。元々この設定は"自動"にしていましたので、設定を"手動"にし、適当な数値を設定したところ現象は完全に収まりました。 その後、一月程運転しておりますが、現象は一度も発生しておりません。 Biosのバージョンが古いのかもしれませんね。

その他の回答 (2)

回答No.2

すみません、こちらから2点ほど質問させて頂きます。 (1)tarでバックアップした際の各ファイルのファイルサイズは同じですよね? (2)tarコマンドを順次実行させているようですが、1つ目のtarコマンドの実行中にバックアップ対象のファイルが変更されているという事は無いですか?

trka
質問者

お礼

ありがとうございます。 (1)tarでバックアップした際の各ファイルのファイルサイズは同じですよね?    はい。比較するファイルサイズは同じです。 (2)tarコマンドを順次実行させているようですが、1つ目のtarコマンドの実行中にバックアップ対象のファイルが変更されているという事は無いですか?    ありません。    バックアップをとるディレクトリの中身は通常のファイルやディレクトリではなく    (つまりホームディレクトリを直接時間差と共に取っている、などではなく)、2-15個程    度のtarファイルです。

回答No.1

8GBの制限に引っかかってないですか? solarisのtarコマンドで"E"オプションを付与しなかった場合、扱えるファイルサイズが8GBまでとなる制限があります。 "E"オプションを使用すると、最大サイズが1TBになります。 例:tar cvf ~ → tar cvfE ~

trka
質問者

お礼

ご連絡ありがとうございます。 tarコマンドの"E"オプションについてのご指摘をいただきました。 私はこれまでご指摘の"E"オプションの存在を知らずにコマンドを 使用してきました。そのため、通常は"tar cf...."などと指令して います。 今回の不具合が見つかってからGNUのtarを使っておりますがそれで も同様の現象が発生しています。 さらに、その後いくつか判明した点がありますので下記に羅列致し ます。 1.問題が発生するのはデータのバックアップとして作成したtar ファイルです。 毎日インクリメンタルのバックアップを取り、一ヶ月に一度フル バックアップを取ります。インクリメンタルなバックアップは 1.5Gb程度、フルバックアップは16Gb程度になります。 ファイルが壊れてしまう現象は、どちらの容量のファイルに於い ても発生します。 2.不具合に気づいてから、次のようにして別々の異なるディレクト リ/異なるディスクに3カ所、同じtarファイルを作成し、それぞ れを"cmd -l"コマンドで比較するチェックをしています。 gtar cf - BackupDir > /export/home/backup/2012_09_27.tar gtar cf - BackupDir > /export/public/backup/2012_09_27.tar gtar cf - BackupDir > /export/home1/backup/2012_09_27.tar このように毎日バックアップを作成しておき、作成済みのtar ファイルも含め(昨日までのtarファイルも含めて)全てのtarファ イルを"cmd -l"にて相互に比較しています(とても時間と手間が かかります。)。 すると、全くエラーが発生しない日があると思えば、発生する日 もあります。 さらに、昨日はエラーが発生しなかったファイルが今日は発生す る、などということも起こります。全く不可解です。 3.エラーが発生したファイルに対し、繰り返し"cmd -l"コマンドを 実行してみます。 例えば次のようにエラーが報告されますが: cmp -l /export/.../backup/2012_08_30_f.tar ./2012_08_30_f.tar 8244928138 241 201 左側のエラーの位置を示す数値(だと思われますが)は、毎回一定 にはなりません。 発生箇所も上記のように一個だったり、2ヶ所だったり不特定で す。 しかしながら、241-201の様に『第5ビットが変わってしまう。』とい う点は変わることがありません。

関連するQ&A

  • eoをバッチファイルから使うに当たって1

    eoをバッチファイルから使います。 eo -s2 -ra+ cc.tar.gz (aa.txt --> bb(tar)--> bb.gz -->cc(tar)-->cc.tar.gzの順で、作成されたファイル、cc.tar.gzが対象です) 時として、警告メッセージ「ディスク容量が足りない可能性がある」 と出て、止まることがあります。ディスク容量は、30Gもありますので 全く問題ありません。多分、tar.gzファイルのサイズが大きいのが、原因と考えます。tar.gzで、20Mぐらい? 質問は、この種の警告が出ないような設定をどのようにして与えるのか、ということです。オプションには、見当たりませんが。 バッチファイルを組んで、多数のgzファイルを自動で解凍しようとしていますので、警告で止まって欲しくはないのです。 対象ファイルをすべて、解凍すると、大体、15Gバイトぐらいになります。 これを見越して、ディスク容量は、30Gバイトを残しています。 尚、警告が出た後の処置ですが、「OK」を押すことで、何も無かったかのように、前に進んで生きます。エラーには、なりません。 宜しくお願いいたします。

  • tarを使用してのファイルコピーについて

    以下の2種類のコマンドは同じ事をしているように思うのですが、 tarを使用する利点は何かあるのでしょうか? ディレクトリの場合はtarを使用する利点はあると思うのですが、 ファイルの場合何かあるのかなと思い質問させていただきました。 1,  tar cf - foo.backup | (cd /mnt/NAS/backupdir; tar xf -) 2,  cp foo.backup /mnt/NAS/backupdir

  • CPコマンドでファイルがコピーできない

    こんにちは。 UNIX上でCPコマンドを使用したのですが、 以下のエラーが発生している為にコピーが出来ません。 大変申し訳ございませんが、 解決方法をアドバイスして頂けますよう よろしくお願い致します。 (実施コマンド) cp -f /oradata/db_FB-RT-D1.tar.gz /mnt/smb/db_FB-RT-D1_2006-12-06_Wed.tar.gz ※/oradata/db_FB-RT-D1.tar.gzの状態です。 -rw-r--r-- 1 root root 3284833199 12月 6 04:42 db_FB-RT-D1.tar.gz 実施ユーザは以下のコマンドでクーロンに設定して行いました。 file_copy.shの中に『cp -f /oradata/db_FB-RT-D1.tar.gz /mnt/smb/db_FB-RT-D1_2006-12-06_Wed.tar.gz』コマンドが あります。 su - root -c "/backup/bin/file_copy.sh"

  • ファイルのコピー

    xcopy コマンドを用いて c:\work フォルダ内に  data_backup.1,data_backup.2,~data_backup.31 と data_backup.日付 のファイルがあります これを d:\keep フォルダに本日のファイルのみをコピーする  例 03/11/28の場合、data_backup.28 バッチファイルを教えてください

  • cronからtarで圧縮しようとすると、途中で終わってしまいます

    サーバーはCentOS 5.3です。 以下はroot権限での話です。 コマンドラインで /bin/tar cvzf /home/myhome/backup/var_backup.tar.gz /var と打ち、実行すると正しく圧縮されたファイルが出来上がります。 解凍してみても問題ありません。 大きさは700MBくらいになります。 ところが同じコマンドをCronにセットして実行すると、ファイルはできるのですが 254K というとても小さなファイルが出来上がって終わってしまいます。 解凍してみるととても中途半端なところで圧縮が終わっているみたいです。 5 0 * * * /bin/tar cvzf /home/myhome/backup/var_backup.tar.gz /var のように書いています。 rootのcrontabなので権限の問題ということも無いと思うのですが。 別のディレクトリでも試してみたのですが同じ結果でした。 別のサーバーで同じくCentOS5.3を使っていて、同じことをやっているのですが そちらはうまく行っているのです。 どなたか解決策などご存知でしたら教えてください。 同じような質問が過去にもあったようなのですが、未解決で終わっていました。

  • solaris上のディレクトリをwindows diskへrshでtarファイルとして保存したい

    solaris上のディレクトリをwindowsからrshでtarを実行して直接windows上のフォルダにtarファイルとして保存したいのですが、コマンドが不明で困っております。 過去ログ(http://oshiete1.goo.ne.jp/kotaeru.php3?q=1139234)の#1さんの回答にあったコマンドがうまくいきません。 solaris8(Ultra-5)  ホスト名 solAAA  バックアップしたいディレクトリ /home/hogehoge windows2000proSP4  ホスト名 winBBB  保存先 C\TEMP  保存する際のtarファイル名 backup.tar コマンドプロンプトでC\TEMPにcd後、実行したいと考えております。 ちなみに↓のコマンドは正常動作を確認しております。  rsh solAAA -l root "ls -lap /" どなたか↓のコマンドの誤っている個所と、解説をお願い致します。  rsh solAAA -l root "tar cf - -C /home/hogehoge . > backup.tar" rshはsolAAA上で実行されるので、winBBBの指定がどっかに必要のような。。。 根本的にこのようなことは不可能でしょうか。

  • ARCserveでDMPファイルをコピー

    VBで、Oracleのデータをエクスポートし、HDD上に保存します。 そのファイルをDATにコピーしたいのですが、 VBからARCserveのコピーのコマンド(?)の呼び方を教えて下さい。

  • tar->gzipの中間ファイル未作成方法ってあります?

    ワークステーションで作業してます。 バックアップをとったり、ftpするときによく tarしてgzipするのですが、tarからgzipって"|(パイプ)"で 単純につなげないのでいつも、コマンドを一つずつ実行するので 大きな中間ファイルができてしまいます。 中間ファイルを作らずにtar/gzipが一括で行えるコマンドの記述を 知ってる方、是非教えて下さい。ちなみに解凍方法も・・・

  • ファイルをコピーするとエラー

    外付け(1.5T)のハードデイスクを購入してファイルを整理していたら ”空き容量がありません。”というエラーが出てしまいコピーできません。空き容量は十分にあります。 そのファイル以外を選択してコピーするとコピーは再開してコピーできますが、途中でまた同じ用になります。 そのファイルがおかしいのかと思い、別の外付けにコピーしたらコピーできました。 外付けのハードディスクが悪いのでしょうか?

  • Dosで FDに大きな容量のファイルをコピーするには

    windows98が起動しなくなったので、 Dosモードでマイドキュメントにあるファイルだけでもバックアップしようとしています。 C:\>copy mydocu~1 a: と打ち込むとフロッピーディスク(FD)に30ファイルぐらいコピーできましたが、十分な空き容量がないと出て(1.44MBしかないので当たり前ですが)そこで終ってしまいます。コピーが終わったその次から新しいFDをいれてコピーを続けていくコマンドはないでしょうか? 図書館やネットで調べましたがわかりませんでした。お知恵をお借りできれば幸いです。