« アプリからFTPを実行する(1)-自前処理 | トップページ | ウェブクライアントの振る舞いを解析する »

2014.03.06

アプリからFTPを実行する(2)-外部コマンドコール

前回は自前で作成したFTPクライアントの処理順序がお粗末! という事例をご紹介した。
本日は昨日ちょっとだけ触れた"2.シェルなどにて外部でFTP処理を行う"事例を記録してみたい。

考え方としては、アプリケーションが動作している環境上で、標準的に備えているftpクライアントをコールして定められたFTP処理を完了させる、というところにある。
Windows上であれWHS/BAT、UNIXならC-shell/K-shell/bashなど、コンソールからCUIベースで扱えるバッチ処理を利用するのがよくやる手段である。

パスワードを平文で送っていいのか、というのは今回は問題としませんw
今回はどの例でもFTPを実行するファイルと、FTP上で実行されるファイルを分割してある。
これはftpコマンドラインクライアントが、ファイルを読み込んでその順番にコマンドを実行するという特性を利用している。

◆共通となるFTPコマンドファイル(ftp_command.txt)

open
192.168.0.1
test
test
ascii
put XXXXX.txt
bye

1行目から、[open]コマンド、[接続先ftpサーバ]、[ログインユーザーID]、[ログインパスワード]、[具体的なコマンド(今回の例であれば転送モードとファイルアップロード処理)]、[bye]による終了処理、ということを示しており、上から順番に実行されていく。


◆MS-DOSバッチの例
@echo off
ftp -s:c:\ftp_command.txt

◆bashの例

#! /bin/bash
ftp -n < ftp_command.txt

DOSの場合は-sオプション、bashの場合は-nオプションで入力リダイレクトを使う、という違いはあるが、どちらにせよftpクライアントに対して、バッチで処理を依頼する、という基本形には違いがない。
ftp_command.txtの出力する処理においてputされるファイル名や接続先情報を調整することで、応用がいろいろできるはずである。

|

« アプリからFTPを実行する(1)-自前処理 | トップページ | ウェブクライアントの振る舞いを解析する »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/2022/59236418

この記事へのトラックバック一覧です: アプリからFTPを実行する(2)-外部コマンドコール:

« アプリからFTPを実行する(1)-自前処理 | トップページ | ウェブクライアントの振る舞いを解析する »