FTPを自動化する方法

0.まえがき
いつも使うGUI FTPクライアントもいいけど、
たまには、ダブルクリック一つで転送完了!
っていうのも味わってみませんか?

1.目的
定型的(つまり、毎回同じファイルを送るような場合)なFTP処理に対し、
簡単なFTP用スクリプトを組むことで、省力化を行う。

2.用意するべきもの
ftpを起動するバッチ(シェル)と、実際に何をやるべきかを書いた、 FTPスクリプト(のようなもの)が必要になります。

3.やるべきこと(Windows編)
Windowsで、FTPスクリプトを読み込ませるには、
ftp -s:スクリプトファイル
という風に、ftpを起動してやることになります。

つまり、バッチファイルには、
ftp -s:%1
のような一行を記述しておき、
autoftp.bat ftp.txt
のように起動すれば良いでしょう。
(ftp.batという名前にすると、無限ループになったりします(^^;)

では、FTPスクリプト(ftp.txtに相当)を書いてみましょう。

・ファイルをアップロードするよ編 (#以降はコメントとみなして下さい)
open pcg-c1s      # 1行目には、open ホスト名を記述します。
hogeuser      # 2行目には、ユーザ名を記述します。
hogepasswd      # 3行目には、パスワードを記述します。
        
ascii      # アップロードするファイルに応じて、モードを設定します。
mkdir hogedir      # mkdir ディレクトリ名でディレクトリを作ります。
literal site chmod 705 hogedir      # literal site chmod Mode ディレクトリ名でディレクトリのパーミッションを変えます。
cd hogedir      # cd ディレクトリ名で作業ディレクトリを変えます。
        
lcd localhogedir      # lcd ディレクトリ名でローカルの作業ディレクトリを変えます。
put hogefile      # put ファイル名でアップロードします。
literal site chmod 644 hogefile      # literal site chmod Mode ファイル名でファイルのパーミッションを変えます。
        
bye      # byeでftpサーバからサヨナラします(^^;

4.やるべきこと(UNIX編)
UNIXで、FTPスクリプトを読み込ませるには、
ftp -n < スクリプトファイル
という風に、ftpを起動してやることになります。

つまり、シェルには、
ftp < $1
のような一行を記述しておき、
ftp.sh ftp.txt
のように起動すれば良いでしょう。

スクリプト自体は、Windowsのものとほとんど同じですが、
UNIXごとにftpの実装が異なる※みたいなので、
実際は、「man ftp」して調べましょう!

※ユーザ名とパスワードを記述するところで、
UP-UXの場合 → user username, password
Slackware7.0(Linux)の場合 → user username password
のように、微妙に違ったりする。

では、FTPスクリプト(ftp.txtに相当)を書いてみましょう。

・ファイルをダウンロードするよ編 (#以降はコメントとみなして下さい)
open pcg-c1s      # 1行目には、open ホスト名を記述します。
user hogeuser hogepasswd      # 2行目には、ユーザ名とパスワードを記述します。
        
ascii      # ダウンロードするファイルに応じて、モードを設定します。
cd hogedir      # cd ディレクトリ名で作業ディレクトリを変えます。
        
lcd localhogedir      # lcd ディレクトリ名でローカルの作業ディレクトリを変えます。
get hogefile      # put ファイル名でアップロードします。
        
bye      # byeでftpサーバからサヨナラします(^^;

5.というわけで
快適なftpライフを送ってくださいね〜(^^)/