シェルスクリプトでftp転送
#!/bin/sh DATE=`date '+%Y%m%d'` tar cvfz ${DATE}.tar.gz ./hoge ftp -ivn 192.168.11.11 << __END__ user username password bin # バイナリ転送モード passive # パッシブモードoff cd /foo/var put ${DATE}.tar.gz quit __END__
ファイル転送時にはascii/binaryの転送モードに注意です。
例えば、tar.gzファイルの転送で、転送先で解凍しようとしてこんな感じにメッセージが出て
tar: 次のヘッダをスキップします tar: アーカイブに廃れた base-64 ヘッダが含まれています gzip: stdin: invalid compressed data--format violated tar: Child returned status 1 tar: 処理中にエラーが起きましたが、最後まで処理してからエラー終了させました
gunzipだけで以下のようなメッセージが出る場合
gunzip: 20080120.source.tar.gz: invalid compressed data--crc error gunzip: 20080120.source.tar.gz: invalid compressed data--length error
転送モードがバイナリになっていない事が原因である可能性が高いと思います。