- - PR -
FTP ファイル一覧取得方法
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-09-22 13:56
そんな事は無いと思うのですけど... rsync は rsh か ssh で通信しますので、おそらく、リモートホストが このどちらの通信も許可していないのだと思います。 # 訂正 : リモートにも rsync のインストールは必要ですね。すみません。 もし、リモートの環境を変更する事が可能なら、rsync + ssh を 検討してみるのも良いと思います。 ファイルリストを取得するだけなら ftp コマンドで良いのでしょうけど、 目的は、差分があればそのファイルをダウンロードしたいのですよね。 だとしたら、スクリプトで行う場合、ftp コマンドだけじゃスゴく大変だと 思います。 ちなみに、ftpmirror というのも有りますが、詳しいことは忘れました。 [ メッセージ編集済み 編集者: はしもと 編集日時 2004-09-22 13:58 ] [ メッセージ編集済み 編集者: はしもと 編集日時 2004-09-22 14:03 ] [ メッセージ編集済み 編集者: はしもと 編集日時 2004-10-12 16:55 ] | ||||||||
|
投稿日時: 2004-09-22 17:54
bashのシェルを利用して、list.txtに対して以下の判定を行ったらいかがでしょう?(正常終了=ファイルの作成、異常終了=ファイルの未作成を利用するわけです)
_________________ 脱線のNUSHI(見習い) ☆⌒(*^▽°) | ||||||||
|
投稿日時: 2004-09-22 17:56
はしもと様返信ありがとうございます。
不備、又は誤解を招く記載が多々ありましたので、【rsyncについて】と 【やりたいこと】について修正させて頂きました。 誤解を招く記載にてご迷惑をお掛け致しました。 【rsyncについて】 始めに前回ホストとリモートという誤った使い方をしてしまいました。 下記内容がHPに記載されており、ローカルとリモート両方に環境変更が必要であると 判断しました。リモートパソコンは他の管理にあり環境変更を行う事ができません。 その為rsyncの使用については断念させて頂きました。 [記載内容] ”ローカルとリモートのシステムのサーチパスに rsync のコピーを置くか、 make install して下さい。それだけです! [URL] http://www.infoscience.co.jp/technical/rsync/README.html 【やりたいこと】 やりたいことについても詳細を下記に記載させて頂きます。 下記処理時にFTP失敗の処理が抜けておりましたので追加質問させて頂きました。 確かに、はしもと様ご指摘のように”ファイルの同期”を考えた場合は沢山の 事象がありスゴく大変になると思いますが、実際は下記のような単純な考えです。 メモリ管理、プロセス間通信、シグナル、同期・・・など考慮してません。 誤解を招く記載にてご迷惑をお掛け致しました。 機能:新しいバージョンアップファイルがアップロードされた場合、 ダウンロードし、システム?の再構築を行う。 詳細:@ファイル一覧取得 :掲示板にて解決!! A既存のファイル一覧と比較 :(cat a | awk '{print $9}' > b)等してロジック検索? Bダウンロードスクリプト更新:ファイルオープン、ライトなんかで書き換え Cファイルダウンロード :system()でスクリプト実行(作成済★) Dファイル展開 :system()でスクリプト実行(作成済★) Eシステム?再構築 :system()でスクリプト実行(作成済★) FLAN内メール通知 :掲示板にて解決!!(ぽんす様ありがとうございます) ※@、Aは15分間隔でループ 以上 よろしく御願いいたします。 | ||||||||
|
投稿日時: 2004-09-22 18:24
水無月 遊々様返信ありがとうございます。
これまた誤解を招く記載をしてしまいご迷惑をお掛けいたしました。 確かにファイル一覧取得有無のエラー判定としては問題ないと思います。 しかし、大変申し訳ございませんがFTP通信時のエラー確認方法を求めております。 bashまた言語にてtelnet時に表示される実行結果(3桁数字)を認識する方法があれば 理想であり、下記障害時の検出に使用したいと思います。 [問題エラー] ”FTP接続失敗、ファイル転送中止など” 偉そうな文章ばかりですみませんがよろしく御願いいたします。 | ||||||||
|
投稿日時: 2004-09-23 19:32
サイト
巡回 ダウンロード 新着判断 オートパイロット などの 単語で検索してみましょう、FTP 版ですね。 自動翻訳、RSS 作成・配信 でしょうか ? 参考になる情報があると思いますが、 もとのサイトに RSS配信 を要求するほうが早いかも システム・再構築なら CVS とか subversion 「更新」のほうかな ? windows の「ファイル同期」 なら 、ブリーフケース(誰も使ってない?) [ メッセージ編集済み 編集者: MMX 編集日時 2004-09-23 19:34 ] [ メッセージ編集済み 編集者: MMX 編集日時 2004-09-23 22:04 ] | ||||||||
|
投稿日時: 2004-09-24 08:30
以前、似た機能を ftpcopy というコマンドを知人から教えて頂、実現したことがあります。 取得済みのファイルは飛ばして、再帰的にディレクトリ内をコピーしてくれました。 2>&1 で結果をリダイレクトすることで、取得したファイルとエラーも取得できるのでは? | ||||||||
|
投稿日時: 2004-09-24 11:44
MMX様、Toshi様返信ありがとうございます。
FTP通信時のエラー確認方法を決めましたので報告します。 多々の助言ありがとうございました。 方法はFTPに'-v'オプションを追加により、通信結果情報をファイルに落とすことが可能になった為、プログラミングにてサルベージしようと思います。 上記結果にてFTP接続失敗、ファイル転送失敗時にリトライ、エラー通知等の処理を 実装しようと思います。 [スクリプト] #!/bin/sh alias ftp=/usr/bin/ftp ftp -niv localhost >>log.txt << _EOD ★vオプション追加 user xxxx xxxx passive binary cd /home/xxxx ls ./ list.txt bye _EOD [log.txt] Connected to localhost (127.0.0.1). 220 (vsFTPd 1.1.3) 331 Please specify the password. 230 Login successful. Have fun. Passive mode off. 200 Switching to Binary mode. 250 Directory successfully changed. 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. 226 Directory send OK. 221 Goodbye. TO:MMX様、Toshi様 ファイル同期を行うツールを検索した結果多々あるようですね。 ファイル一覧を取得し差分をダウンロードするという発想から あまりツールは意識してませんでした。ざっと考えた設計でしたので。。。 今後いかしたいと思います。ありがとうございました。 「ツール」 ・ftpcopy ・lurkftp ・ftpmirror ・pavuk ・rsync 2>&1については下記のようにスクリプトへ挿入してみましたがうまくいきませんでした。 やはりFTPのエラー結果は通信データとして扱われると思われますので、シェルの方では エラー出力と判断してくれないようです。 [2>&1入れ込み] ftp -ni xxxhost >error.txt 2>&1 << _EOD cd /home/xxxx >error.txt 2>&1 。。。等 以上 ありがとうございました。 |