tarコマンド 予期せぬ EOF ftp転送不具合

このQ&Aのポイント
  • ftpでsolarisからredhatへ、大きいもので数GBあるのをtarでアーカイブして転送し、redhatで解凍したところ、8ファイル転送したうちの半分以上が「アーカイブ中に予期せぬ EOF があります」メッセージが出て解凍できませんでした。
  • ftpの標準出力上メッセージでは正常に転送できております。ftpの実装もsolaris純正のftpなのであまり考えにくいです。回線も特別な太い回線を使用しております。
  • 途中でEOFになるということは、コネクションが切れたということでしょうか?ftpの標準出力上のメッセージは正常に転送されてますが、そのようなことがあるのでしょうか?
回答を見る
  • ベストアンサー

tarコマンド 予期せぬ EOF ftp転送不具合

tarコマンド 予期せぬ EOF ftp転送不具合 お世話になります。 ftpでsolarisからredhatへ、大きいもので数GBあるのをtarでアーカイブして転送し、 redhatで解凍したところ、8ファイル転送したうちの半分以上が 「アーカイブ中に予期せぬ EOF があります」メッセージが出て解凍できませんでした。 ftpの標準出力上メッセージでは正常に転送できております。 ftpの実装もsolaris純正のftpなのであまり考えにくいです。 回線も特別な太い回線を使用しております。 途中でEOFになるということは、コネクションが切れたということでしょうか? ftpの標準出力上のメッセージは正常に転送されてますが、そのようなことがあるのでしょうか? ご教示しただけたら幸いです。 以上、よろしくお願いいたします。

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

  • ベストアンサー
  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.4

転送元と転送先でファイルのサイズは同じですか? できればmd5sumとかも転送元、転送先で同じかどうか確認してみては。 ftpって確実性のある転送プロトコルではありませんから。

fushululu
質問者

お礼

ご回答ありがとうございます。 再度転送作業をしたところ、問題なく転送でき、解凍も問題なくできました。 サイズを調べたところ、微妙に少なかったです。 よくよく考えてみると、何度か転送の検証してまして、途中でCtrl+Cなどで中断したため パケットロストしたものと思いました。 記憶が曖昧になっており、恐らくですが、自分でやってしまったことに気付かず騒いでしまいました。 回等くださった皆様含め、大変ご迷惑をおかけしました。

その他の回答 (3)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

数GBだと、largefile関連も注意しないとですね。 ソフトや環境によっては2GB以上のファイルは利用できません。

fushululu
質問者

お礼

ご回答ありがとうございます。 専用回線ですが、転送に30分以上はかかります。 largefile関連ですね。調べてみます。

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.2

1/の方も指摘されてますが、ftpはバイナリ転送ですよね。 あと、プラットホームがわかりませんが、SolarisはSPARCですかx86ですか?redhatはx86ですかIA-64ですか? 転送データはバイナリデータですか、テキストファイルですか? バイナリの場合、SPARCはビッグエンディアンでx86はリトルエンディアンですから、tarアーカイブ時にここの整合性を指定しないと解凍できません。

fushululu
質問者

補足

SaKaKashiさん ご回答ありがとうございます。 情報提示が足らずお手数かけました。 SolarisはSPARC、redhatはx86です。ftpは転送データはバイナリデータですので、バイナリモードでの転送です。 ビッグエディアンとリトルエディアンで違いがあるのは勉強になりました。ありがとうございます。 前に同じ手順でFTP転送したtarファイルが正常に解凍できたので、tarの整合性は担保されているような気もしますが。どうなのでしょう。

回答No.1

1つ確認なのですが,ftp はバイナリモードで通信を行っていますか? アスキーモードだと,いろいろと変換をするので問題が発生する可能性があります。 モードを確認して,再度実行してみてください。 転送に問題がない場合は,tar 等の圧縮・アーカイブの形式が違う可能性があります。 GNU と BSD 系の形式が違うように。この場合は,オプションやコマンドを変えることで対応できる場合があります。 それでも駄目な場合は,分りません。

fushululu
質問者

補足

ご回答ありがとうございます。 詳しい状況を説明せずすみません。 ftpはバイナリーモードで通信しております。(データがバイナリなので) また、当不具合が発生する前に1回同じ手順でFTP転送したtarファイルをredhat環境 で正常に解凍できました。 なので、形式の違いはクリアしていると思います。 恐縮ですが、解決にいたらずです。

関連するQ&A

  • tar コマンドについて

    お世話になります。 tar.gzファイルを展開しようといろいろ調べていたら下記のようなことに出くわしましたのでご教授宜しくお願いします。 tarでの解凍/展開のコマンドについて $ tar xfvz ファイル名 $ tar xzvf ファイル名 オプションの並びが違いますがこれは影響するのでしょうか? またオプションなんですけど、xはアーカイブを展開、zは解凍、fとvにはどういう意味があるのでしょうか? それからredhat系でhttpdをyumでインストールする際はapache2.2系がインストールされてしますますが、2.0系をyumでインストールすることは可能なんでしょうか? 以上よろしくお願いします。 ※環境:centos5

  • LinuxのFTPコマンドについて他

    Linuxに関する質問です (1) 2つのサーバA,Bで以下の作業を行いました。 1.Aで"tar cvf","tar rvf"を使用して50個ほどのファイルを相対パスでアーカイブした(File1生成) 2.Bからftpコマンドを使用してFile1をGetした 3."tar xvf"を使用してFile1を展開した このとき3.の処理が、8個ほどのファイルの展開が終了したところで、次のメッセージを表示して停止してしまいます。 [メッセージ] tar: Skipping to next header tar: Archive contains obsolescent base-64 headers tar: Error exit delayed from previous errors これが、どのような原因によるものかご存知の方はいらっしゃるでしょうか? 環境は以下の通りです サーバA:Red Hat Linux release 6.2 (Zoot) Kernel 2.2.14-5.0 on an i686 サーバB:Red Hat Linux release 7.3 (Valhalla) Kernel 2.4.18-3 on an i586 (2) テスト用サーバA、WEBサーバBがあるとします。 BからAに対してftpコマンドのGet要求を行いAにあるファイルをBに持ってくるとき、Bにおけるファイルのタイムスタンプは、通常、ftpを行った時間になってしまいます。 BにおけるファイルのタイムスタンプをAにおけるファイルのタイムスタンプ(ファイルが生成された時間)と同じにする事はできないでしょうか? ちなみに、現在は「Aでファイルをアーカイブ」->「AからBにFTP転送」->「Bでアーカイブファイルを展開」という方法で対処しています。 以上2点について宜しくお願いします。

  • UNIX(Solaris)でのtarファイルの解凍エラー

    AというUNIX(Solaris)でtar cvf で固めたフォルダ階層を別のBというUNIX(Solaris)でtar xvfで解凍すると、 tes, 7 テープブロック tar: ディレクトリの検査合計エラーです というエラーメッセージがコンソールに出力されます。 これは、Solarisじゃない別のOSから持ってきた場合に出力されるという話は聞いたことがあるのですが、同じSolarisで圧縮したものを解凍してもでるのでしょうか? どのような条件下で出力されるエラーかご存知方がいらっしゃいましたらご教授のほどお願いいたします。

  • コマンドファイルからのFTP転送の実行について

    運用サーバからバックアップファイルを他のサーバに転送したく、 PHPからコマンドを実行する方法という下記のサイトを参考にPHPから実行 できないか模索しております。 http://piyopiyocs.blog115.fc2.com/blog-entry-760.html ftp.shで保存しておき、実行用のPHPに下記を記述し、 「<?php exec("/bin/sh ftp.sh"); ?>」 ftp.shと同じ階層にアップロードしてからphpファイルをブラウザから、 呼び出してみたものの、6GBあるはずのファイルが2GBほどしかアップロードされません。 ターミナルから、ftp.shを実行した場合は、 6GBでアップロードできております。 ●実行結果 ・PHP→ftp.sh:2GB(×) ・ターミナル→ftp.sh:6GB(○) ●PHP→ftp.shとターミナル→ftp.sh共に共通して、 ?Invalid commandという出力が行われます。 ?Invalid commandが出力されてはおりますが、 一応はファイルの転送が実行はされております。 PHPからの実行の場合は、PHPの容量制限かなにかが反映されてしまうのでしょうか。 PHPからの実行でアップロードファイルが途中で止まる現象を回避する方法は、ありますでしょうか。 ?Invalid commandというのは、正常に処理が行われている場合でも 出力されるのでしょうか。

  • Linux shell ftp 転送 エラー制御

    Linuxのshellで、ftpを使ってデータを転送するシェルを作成しています。 転送部分はうまくいき、エラー制御を考えているのですが上手くいきません。(ログは取得できてます) やりたいことは、ftp転送で失敗したかどうかの判定をしたい。ということです。 過去ログ等見ていて、ログファイルからエラーNoをgrepして判断する。というやり方があったので 試して見ましたが、構文が正常に書けていないようです。すみませんがアドバイスをお願い致します。 ftp転送終了したとします。 ログは $Log_Path/$date.txt にとってあります。 grep ^425 $Log_Path/$date.txt /dev/null if $? eq 0 then error_flag=1 exit 1 fi (エラーが発生したら、error_flagに1が入るようにしたい) エラーナンバーは425(データコネクションをオープンできない)というやつで、いいかなと思っていますが、もっと適切なものがあれば教えて下さい。(putで行っている転送の失敗を判断できればいいです) 上記の構文ではエラーが出ます。 また、 /dev/null の部分が意味が解っていません。この部分の説明をお願いできますでしょうか? 宜しくお願い致します。

  • .movファイルをFTP転送エラーについて

    OLYMPUSのデジカメで動画をとりそれをHPに掲載していこうと思っています。初め4MBの***.movファイルのFTP転送はうまくいきHP上でもQuicktimeで見れました。 また次のをFTP転送しようとすると下記のエラーメッセージがでてしまい送れません。というか例えば3MBのものが4k位になって不完全な形で送られていますがHP上では表示されません。 「Opening BINARY mode data connection for /***/ファイルのアドレス」 スマートメディアをフォーマットして撮りなおしてもだめでした。 初めに送れたファイルだけは今でもエラーもでず送れます。正常な送れたファイルとプロパティなど色々見比べてみているのですが全く同じです。 PC上では全て正常に動きます。 設定など変えてもいないはずなのですが、どなたか解決方法を教えて下さい。 宜しくお願いします。

  • FFFTPとDosでのFTP転送について

    環境 ホストOS = RedHat Linux 5.5 ミドルウェア = VMware4.0 ゲストOS = RedHat Linux 5.5 FFFTP = 1.97a         ~~~~~~~テスト環境~~~~~~~ ・ゲストOS上のLinuxへネットワークカードを追加し、現在IPを2個振ってあります。 ・転送ファイルは1M、20M、50Mのファイル ・FFFTPとDosプロンプトを使用してのアップロードとダウンロード ・転送先、ダウンロード元は上記のIPが2個振ってあるゲストOSのRedHat Linux5.5         ~~~~~~~事象~~~~~~~ 現在FireWall越しにFTP転送テストを行っているのですが、 AのIPはFFFTP、Dosの両方を使用してもアップロード、ダウンロード共に上手くいきます。 しかし、追加したBのIPでは1Mのファイルしかアップロード出来ず、20Mではタイムアウト になってしまいます。 また、Dosでは上手くいきますが、FFFTPではエラーになってしまいます。 FFFTP失敗後、再度Dosで試してもタイムアウトになってしまいます。 更に困った事に、弊社のネットワーク(ファイアウォール越しの別セグメント)から転送テスト を行っても、正常に配置出来るのですが、お客様のネットワークからだと 上記のように失敗してしまう状況です。 長文になり誠に申し訳ございませんが、 非常に困っておりまして何卒宜しくお願い申し上げます。

  • FTPサイト上で圧縮ファイルを解凍する方法を教えてください。

    FTPサイト上で圧縮ファイルを解凍する方法を教えてください。 Windows上の多数のファイルをSolarisサーバにFTP転送する際、 エクスプローラを使用して行っているのですが、非常に時間が かかっています。 そこで、圧縮して転送することを考えたのですが、それには 転送先サーバで解凍する必要があります。 telnetやsshといった方法でのログインは不可であり、ftpだけで 解凍を行いたいのですが、可能でしょうか。 良い方法があれば、教えていただけないでしょうか。 なお、Windows上に高速転送ソフトなどをインストールすることは できません。 よろしくお願いします。

  • 8GB以上のファイルが読み込めません

    RedHatLinux ES4.6 でLTOに書き込んだファイルが Solaris10 で読み込めなくて困っています。 ファイルサイズが8GB未満の場合は問題ないのですが、 8GBを超えている場合、ディレクトリの検査合計エラーが 出力されてしまいます。 Solaris側でgtarを使えば読み込めることはわかっているのですが、 Solaris側担当は、容易には対応してくれません。 なんとかRedHat側のLTO書き込み時のオプション変更で回避したいのですが、何かよい方法はないでしょうか? 書き込み(RedHat) fileaが33GB tar cvf /dev/st0 filea fileb 読み込み側(Solaris) tar xvf /dev/rmt/1

  • wu-ftp のファイル転送容量制限

    wu-ftpd(2.6.1)を使用しています。(OSはSolaris8) 他サーバからの大容量(2.8GBくらい)ファイル転送(get)を試みたところ、 「Value too large for defined data type.」 と怒られてしまいます。wu-ftpdでなく標準のftpでは上記現象は発生しません。 文献を探して見ましたが、それらしき設定(byte limit total 3000000000 *)を行ってみましたが結果は同じでした。 (1)wu-ftpdでは容量制限はどの程度あるのでしょうか? (2)容量制限を変更する方法はありますか? すみませんが、ご存知の方、ご教授お願いします。