ゆるいSEのIT徒然草

SE向けナレッジ(ほぼ自分用メモ)。技術以外にも、システム関連のもろもろ雑多なノウハウを公開します。内容保証しません!!!

FTPコマンド

【基礎知識】
windows/unix OS等で使用できる。基本的なコマンド操作方法は同じ。
 

【主なFTPコマンド】
ftp
[機能]FTPサーバへの接続
[例]ftp 192.168.111.1
 
■put
[機能]FTPサーバへの単一ファイルアップロード
[例]put abc.txt

■get
[機能]FTPサーバへの単一ファイルダウンロード
[例]get abc.txt

■mput、mget
[機能]FTPサーバへの複数ファイルアップロード/ダウンロード。
    *を使用することで任意のファイル名のファイルを操作できる。
[例]mput *.zip
[例]mget *.zip

lcd
[機能]ローカル(接続元)のディレクトリ変更。
    通常、FTP接続前に任意のディレクトリに
    移動しておくほうが便利なので、使用しない。
[例]lcd /tmp/
 

■!ls !dir
[機能]ローカル(接続元)のディレクトリ確認。
    アップロードするファイルを確認する時などに使用。
[例]!ls (接続元がunix)  !dir (接続元がwindows)

■bye
[機能]FTP接続終了時に使用する。引数なし。

■bin/asc
[機能]バイナリ/アスキーモード切替。引数なし。
    操作対象ファイルがテキストファイルの場合はasc、
    バイナリファイルの場合はbinを事前に実行するのが基本。

■type
[機能]バイナリ/アスキーモード

■その他
cd ls など、基本的なunixのコマンドはFTPコマンド内でも、そのまま使用可能。
 

【バイナリ/アスキーモードについて】
windows(改行コードCR-LF)のテキストファイルを、
 Unix系OSFTP PUTする際は、モードによって以下のように変わる。
 ・バイナリモード
   ⇒元の改行コード(CR-LF)のままアップロードされる。
 ・アスキーモード
   ⇒LFに自動的に変換されてアップロードされる。
    シェルなどをファイル単位でPUTする場合は必須。
 ※Unix(改行コードLF)のテキストファイルをwindowsにGETする場合も同様の挙動となる。


FTPコマンドによるポートオープン調査】
ftpをポート指定で開くことで、対象ホストのポートが開いているか確認できる。
C:\>ftp
ftp> open 192.168.0.1 80
192.168.0.1 に接続しました。
アクティブなすべてのデータ接続を中止しています...
接続がリモート ホストによって閉じられました。
 ⇒80ポートが開いている。

ftp> open 192.168.0.1 8080
ftp>
 ⇒8080ポートは閉じられている。
 
telnetコマンドでも同様のことが実現できる。
 Windowsはそのままではtelnetコマンドは使えないので、上記の方法を推奨。
 unixではtelnet host port でOK。