パッシブモードをサポートしないWindowsのftp.exeが使えないから検討した代替ツール: NcFTP

仕事でサポートしているお客様の環境がサーバー側からの接続を許可しないネットワークポリシーのため、 バッチ処理の際にパッシブモードでFTPをかける必要がありました。

Windowsのftp.exeはパッシブモードをサポートしないため、確実にサポートしているクライアントとしてNcFTPを紹介した際にサクッと作った資料です。

バッチじゃなくていいなら、GUIのツールを使ってください。パッシブモードをサポートするGUIのFTPクライアントはWindowsにもたくさんあります。

NcFTPとは

NcFTPとは、テキストベースの高機能FTPクライアントソフトです。ニックエフティピーと読みます。Clarified Artistic Licenseで配布されているオープンソースソフトウェアです。

OS標準で提供される「ftp」コマンドと比較すると機能強化が図られています。

Ncftpの主な強化機能は、以下の通りです。

  • bookmarkが利用可能
  • tabキーによる補完機能
  • get、putコマンドでワイルドカードが利用可能
  • 接続したFTPサーバを自動保存
  • 切断したときのカレントディレクトリを自動保存
  • レジューム機能搭載
  • ダウンロードの進捗を表示

NcFTPのセットアップ

NcFTPはUnixベースのツールのため、Windows上で動作させるために Cygwinをまず導入します。

Cygwinのインストール

Cygwinは、Windows上にUNIX系OSライクな環境を再現するソフトウェアパッケージです。 GNU GPL(GNU General Public License)に基いてオープンソースソフトウェアとして公開されており、誰でも自由に入手、利用、改変、再配布などすることができる。

Cygwinのサイト(https://www.cygwin.com)より、setup-x86.exeまた、setup-x86_64.exe(64ビットバージョン)をダウンロードし実行してください。

起動すると以下のようにセットアップが進んでいきます。

  1. インストールするパッケージのソース(通常は Install from Internetを選択)
  2. インストール先ディレクトリ(デフォルトのままで大丈夫です)
  3. ダウンロードするパッケージの一時的な保管場所の指定(デフォルトで大丈夫です)
  4. インターネットへの接続方法(環境に合わせて設定ください)
  5. ダウンロードするサイトの設定(日本のドメインを持つサイトを適当に選択ください)
  6. インストールするパッケージの指定(基本的にデフォルトで大丈夫です。次の章を参照してNcFTPを追加してくだい)

NcFTPのインストール

NcFTPは、Cygwinのデフォルトでは導入されません。パッケージを明示的に選択してインストールする必要があります。

上記の図のようCygwinのインストール画面で、検索機能を使ってNcFTPを検索してインストールするよう設定を変更してください。

あとは、Cygwinのインストールを継続すればインストール完了です。

NcFTPの使い方

基本動作

基本的な使い方は ftp を同じです。

(以下の例は、Mac OS Xの環境に導入した NcFTP 3.2.5 での実行結果です)

MacbookPro:~ draemon$ ncftp
NcFTP 3.2.5 (Feb 02, 2011) by Mike Gleason (https://www.NcFTP.com/contact/).
ncftp> open -u draemon hogehoge.usa.com
Connecting to 9.999.99.9...
ProFTPD 1.3.4c.15 Server (GSA FTP Service) [9.999.99.9]
Logging in...
Password requested by 9.999.99.9 for user "draemon".

    Password required for draemon

Password: **************

User draemon logged in
Logged in to hogehoge.usa.com.
ncftp /hogehoge-h1/01/draemon > ls
Home-Backup/                           a2013-01_M09682.nsf                    web/
ncftp /hogehoge-h1/01/draemon > cd web
ncftp /hogehoge-h1/01/draemon/web > ls
index.html   private/     public/      shared/
ncftp /hogehoge-h1/01/draemon/web > cd public/
ncftp ...1/01/draemon/web/public > ls
2015-06-15_11-32-12.png   Streams/                  TRIRIGA-Materials/
ncftp ...1/01/draemon/web/public > cd TRIRIGA-Materials/
ncftp ...blic/TRIRIGA-Materials > ls
usa-TRIRGIA-BVA-Introduction.pdf
ncftp ...blic/TRIRIGA-Materials > passive
passive                        on
ncftp ...blic/TRIRIGA-Materials > get usa-TRIRGIA-BVA-Introduction.pdf
usa-TRIRGIA-BVA-Introduction.pdf:                        2.99 MB    6.08 MB/s
ncftp ...blic/TRIRIGA-Materials > close
ncftp> bye
MacbookPro:~ draemon$

ブックマーク機能

以下の操作では、draemonというユーザーIDで接続した hogehoge.usa.comをgsaという名前でブックマーク登録しています。 これにより、次回から gsa という名前で呼び出せるようになります。

以下の例では、パスワードを保存していませんが、認証情報も含めてブックマークすることが可能です。

MacbookPro:~ draemon$ ncftp
NcFTP 3.2.5 (Feb 02, 2011) by Mike Gleason (https://www.NcFTP.com/contact/).
ncftp> open -u draemon hogehoge.usa.com
Connecting to 9.999.99.9...
ProFTPD 1.3.4c.15 Server (GSA FTP Service) [9.999.99.9]
Logging in...
Password requested by 9.999.99.9 for user "draemon".

    Password required for draemon

Password: **************

User draemon logged in
Logged in to hogehoge.usa.com.
ncftp /hogehoge-h1/01/draemon > bookmark
Enter a name for this bookmark, or hit enter for "hogehoge": gsa


You logged into this site using a password.
Would you like to save the password with this bookmark?

Save? [no]

Not saving the password.
Bookmark "gsa" saved.
ncftp /hogehoge-h1/01/draemon > open gsa
Connecting to 9.999.99.9...
ProFTPD 1.3.4c.15 Server (GSA FTP Service) [9.999.99.9]
Logging in...
Password requested by 9.999.99.9 for user "draemon".

    Password required for draemon

Password: **************

User draemon logged in
Logged in to hogehoge.usa.com.
ncftp /hogehoge-h1/01/draemon >

Comments !