FTPファイル転送は自動化して無駄な手間を省きましょう

Text By:techhub

ITインフラ業界ではFTP(File Transfer Protocol)でファイルを転送するのは日常茶飯事だと思います。

時間をかけずにファイル転送をする方法を紹介

はじめに

GUI(Graphical user interface)で実行する際には、FFFTP などのフリーのツールを使用するため、あまり意識せずにファイルの転送は可能ですが、CLI (Command line interface)などにより実行する場合には、時間がかかってしまうやり方でファイルを転送しているエンジニアもいらっしゃるようで、とてももったいなく感じることがあります。

例えば、FTP サーバに以下のファイルがあるとします。
enrise01.pdf
enrise02.pdf
enrise03.pdf

これらのファイルを1つずつダウンロードした場合には、
ftp> get enrise01.pdf
ftp> get enrise02.pdf
ftp> get enrise03.pdf

というように、それぞれのコマンドが終了するのを待って、3回もコマンドを入力しなければなりません。

ファイルの数が3個程度ならばまだ良いが、100個もあったとしたらかなり骨が折れます。

こういった場合に、FTP のコマンドと、正規表現を用いて、自動で全てのファイルを一度に転送することが出来ます。

まずはFTP サーバにログイン

% ftp 192.168.0.100
Connected to 192.168.0.100.
220 enrise FTP server (UNIX(r) System V Release 4.0) ready.
Name (192.168.0.100:ftpuser):ftpuser
331 Password required for ftpuser.
Password:パスワード入力
230 User ftpuser logged in.
ftp>

次に確認メッセージを無効にします。

複数ダウンロード時に確認を求められることがあるので確認のメッセージを無効にします。
ftp> prompt

そして複数ダウンロードします。

ここでは正規表現の * を用いて実行しています。
ftp> mget enrise*.pdf

これで、enrise01.pdf、enrise02.pdf、enrise03.pdf がダウンロードできる。

例えば、100個のファイルがあれば、100回分のコマンド入力を自動化できることになる。

他コマンドを紹介

他にもいくつかFTPのコマンドがあるので、ファイル転送の際に使用しそうなものを紹介しておきます。

bin:バイナリモードにします。
ascii:アスキーモードにします。
put <ファイル名:複数不可>:FTPサーバへ、対象のファイルをアップロードします。
mput <ファイル名:複数可>:FTPサーバへ、対象のファイルをアップロードします。

いかがでしたでしょうか。

このようにするコトで大幅に手間を省くことができるのです。

ITインフラ業界に限らずできるだけ無駄を省き、効率よく物事を進めるのは重要でが、特にエンジニアの方々は顕著だと言えます。

ということで自動化できることは積極的に自動化していきましょう。