- ベストアンサー
対話式FTPのシェル化の方法
FTPのシェル化について質問があります。(同じドメインにあるLinuxマシン同士を想定しています。) ・get(put)でディレクトリを変えて指定することは可能ですか?例えば、"get /home/user1/file1"のように。 ・ftpを起動→ディレクトリ移動→指定ファイルのget の流れを自動化したいと考えています。よい方法はないでしょうか?ftpをあきらめてrcpにするしかないのでしょうか? 以上、ご教授願います。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
標準のftpコマンドで無理なく出来る方法を紹介します。 クライアント側のユーザのホームディレクトリに、 .netrc というファイルを作ると、その中にftpコマンドの動作設定が出来ます。 その中で、マクロが定義できるのですが、マクロ名を init という名前にすると、ftp起動時に自動実行されます。 そこで、initマクロで、cdしてgetしてquitという流れを書けばいいのです。 .netrc を下記のような内容で作成してください。 ---ここから machine <サーバ名> login <ユーザ名> password <パスワード> macdef init cd <対象ディレクトリ> get <ファイル> quit ---ここまで 最後に空行が1行必要なことに注意してください。 必要に応じてbinaryとかも入れてください。 作成したら、chmod 600 .netrc としてください。(他人がさわれないようにしておかないとエラーになります) このあと、ftp <サーバ名> とやるだけですべてやってくれます。 もちろん、putすることもできますし、promptしておけばmgetやmputもokです。 この方法の欠点は、このファイルがある限り、そのサーバに接続すると必ずマクロが処理されてしまうことです。
その他の回答 (2)
- momoturbo
- ベストアンサー率55% (49/88)
- astronaut
- ベストアンサー率58% (303/516)
色々解はあると思いますが、 1.lftp を使う lftpget ftp://hogehoge/home/user1/file1 2.scp を使う (あらかじめパスフレーズ無しの鍵認証を設定しておく) scp user@hogehoge:/home/user1/file1 . 等々
- 参考URL:
- http://lftp.yar.ru/
お礼
ありがとうございました。 LFTPは普段の実務で使えそうですね。 勉強になりました。
お礼
ありがとうございました。 勉強になりました。