FTP の利用方法

FTP にまだ馴染みのない方に DOS コマンドによる FTP の利用方法を
解説します。

FTP とは File Transfer Protocol (=ファイル転送手順) であり
TCP/IP 通信のアプリケーションのひとつでありファイルを転送するための
プロトコル(通信手順)です。
FTP 通信の相手は FTP サーバーと呼ばれる TCP/IP サーバーであり
PORT = 21番でコマンドを通信して 20番 PORT でデータを送受信します。
FTP とは TCP/IP 通信の仕様によって決められたプロトコルですが
プログラムをエンド・ユーザーが作成するのは大変なので
DOS コマンド( DOS コマンド・プロンプト)のコマンドとして
FTP のコマンドが登録されているので、それを使用することになります。

また、インターネットで FTP コマンドの使い方を検索すると
いろいろなコマンドがすべて紹介されていますが実際に使用される FTP コマンドは
ほんのわずかですので覚えておいてください。
また FTP コマンドを知らなくても FFFTP と呼ばれる無償のユーティリティーが
一般的に普及していますが、導入されていないPCでの作業も考えると
やはり開発者としては FTP コマンドを基本として覚えておいたほうがいいでしょう。

基本的な FTP コマンド

FTP コマンド意味と内容
FTPFTP 接続を開始する
BINバイナリ・モード(無変換)を設定する
PUTFTP サーバーにアップロードする
GETFTP サーバーからダウンロードする
QUITFTP 接続を終了する
EXITMS-DOS を終了する

DOS コマンド・プロンプトの起動

Windows 【スタート】 - 【コマンド・プロンプト】 を選択します。

コマンドプロンプト

CD C:\ +[Enter] でホーム・ディレクトリーを C ドライブに変更します。


          C:\Users\quattro>CD C:\
          C:\>

アップロードの方法

FTP + (IBM i のIPアドレス) で FTP 接続します。


          c:\>FTP 192.168.1.1 + [Enter]

          c:\>FTP 192.168.1.1
          192.168.1.1 に接続しました。
          220-QTCP AT pc6.office-q-unet.ocn.ne.jp
          220 CONNECTION WILL CLOSE IF IDLE MORE THAN 5 MINUTES.
          ユーザー(192.168.1.1):(none)):

5分間の非活動があれば FTP は終了します、とコメントされていますが
実際にはもう少し短い時間の非活動で使用できなくなってしまいます。

最初にユーザー名を入力します。(英小文字可)


           ユーザー(192.168.1.1):(none):
           331 ENTER PASSWORD.
           パスワード

パスワードを入力します。(英小文字可) (パスワードは入力しても表示されません。)


           パスワード:
           230: XXX LOGGED ON.
           FTP>

FTP> と表示されると FTP コマンドの入力が可能であることを
意味しています。
バイナリ・モード(無変換)を宣言するために bin と入力してください。
バイナリ・モードを指定しないと FTP によって自動的に
コードが変換されてしまいます。
IFS にアップロードするような場合はそのままの
コードで変更なくアップロードする必要があるので
必ずバイナリ・モードを指定してください。


           FTP>bin
           200 REPRESENTATION TYPE IS BINARY IMAGE.

PUT (ローカル・パス) ( IFS パス名) 型式でアップロードを指示します。
(ローカル・パス)と( IFS パス名)のあいだはスペース文字で区切ります。
(ローカル・パス名)は C:\temp\myfile.txt のように記述しますが
( IFS パス名) は /TEMP/MYFILE.TXT のように /をフォルダーの区切りとして
使用して表現します。
また( IFS パス名) は、なるべく英大文字の名前を使用するようにすれば
IBM i での実行ジョブの CCSID に影響されれることなく
文字化けのトラブルを避けることができます。


           put c:\temp\TEST.TTO /TEST/TEST.TTO
           150-NAMEFMT SET TO 1.
           150 SENDING FILE TO /TEST/TEST.TTO
           226 FILE TRANSFERD COMPLETED SUCCESSFULLY.
           FTP: 303バイトが送信されました。0.20秒 1.50KB/秒
           FTP>

成功に送信が完了されたので QUIT を入力して FTP を終了します。


            FTP>quit
            221 QUIT SUBCOMMAND RECEIVED.
            c:\>

EXIT を入力して DOS コマンド・プロンプトを終了します。


            c:\>exit

DOS コマンド・プロンプトは消滅して終了されます。

実行全体は次のようになります。


           c:\>FTP 192.168.1.1
           192.168.1.1 に接続しました。
           220-QTCP AT pc6.office-q-unet.ocn.ne.jp
           220 CONNECTION WILL CLOSE IF IDLE MORE THAN 5 MINUTES.
           ユーザー(192.168.1.1):(none)):user
           パスワード:
           230: XXX LOGGED ON
           FTP>bin
           200 REPRESENTATION TYPE IS BINARY IMAGE.
           FTP>bin
           200 REPRESENTATION TYPE IS BINARY IMAGE.
           put c:\temp\TEST.TTO /TEST/TEST.TTO
           150-NAMEFMT SET TO 1.
           150 SENDING FILE TO /TEST/TEST.TTO
           226 FILE TRANSFERD COMPLETED SUCCESSFULLY.
           FTP: 303バイトが送信されました。0.20秒 1.50KB/秒
           FTP>quit
           221 QUIT SUBCOMMAND RECEIVED.
           c:\>exit

FTP の中で 200や150と表示されているのは FTP の応答コードです。
例えば 200は直前に入力したコマンドが正しく処理されたことを
意味しています。
150 は FTP からの状況の表示を意味しています。

ダウンロードの方法

FTP のダウンロードの操作もアップロードの操作とほぼ同じです。
異なるのはダウンロードの場合は PUT の代わりに GET コマンドを
使うという点だけです。
モードも必ずバイナリ・モードを指定することを忘れないでください。


        FTP 192.168.1.1
        (ユーザー)
        (パスワード)
        bin
        get (IFSのパス名) (ローカル・パス名)
        quit

        exit

【 IFS パス名の注意点】
特殊な文字は使用しない。.... \, @, #, $

上記でおわかりのように IFS パス名に文字 \$ が含まれていると
パスの区切りであると誤解されてしまいます。
Windows の場合でも文字 / (スラッシュ) はファイル名に使うことはできないのと
同じように IBM i でも IFS や Windows との互換性を考慮すると
ファイル名やフィールド名、RPG ソースにも特殊文字を使うと
余計なトラブルに見舞われます。
今は IBM i だけで完結しているのではなく Windows との互換も
考慮に入れなければならないので普段から特殊文字の使用は
避けるようにしてください。
特に \$ は特殊文字の中でも通貨記号として割振られていますので
CCSID による文字化けの影響を受けますので
絶対に使わないようにしてください。
比較的、安全と思われている _ (アンダー・スコア)であっても
プログラムでは使用を認められていないものもあります。