ftp - ftp クライアント
Table of Contents |
ftp コマンドで ftp サーバーに接続し、ファイル転送をすることができます。 他にも ftp クライアントには ncftp や gftpなどもありますが、 やはり基本として ftp コマンドの使い方は覚えておいたほうがいいです。
% ftp
として ftp を起動後,
ftp> open
のように open と入力すると接続先ホスト名を尋ねてきます。または、
ftp> open [hostname]
とします。[hostname]には接続先のホスト名を入力します。 ftp を起動するときに直接
% ftp [hostname]
のようにしても接続できます。
その後、アカウント名、パスワードを尋ねてくるので、入力します。間違えた場合は、
ftp> user
と入力すると、再度アカウント名、パスワードを尋ねてきます。ftp を終了するには
ftp> bye
または
ftp> quit
とします。 接続を切る場合は(終了とはちがいます)、
% close
のようにします。close してしまえば、他のホストに open でつなぎ直すこともできます。
FTP コマンド一覧(よく使うもの) 
user | login する |
open | 接続を開始する |
close | 接続を閉じる |
put | 一個のファイルをローカルマシンからリモートマシンに転送 |
mput | 複数のファイル(ワイルドカード使用可)をローカルマシンからリモートマシンに転送 |
get | 一個のファイルをリモートマシンからローカルマシンに転送 |
mget | 複数のファイル(ワイルドカード使用可)をリモートマシンからローカルマシンに転送 |
delまたはdelete | ファイルを一個削除 |
mdel | ファイルを複数削除 |
cd | カレントディレクトリを変更 |
lcd | local ホストのカレントディレクトリを変更 |
pwd | カレントディレクトリを表示 |
mkdir | ディレクトリを新規作成 |
rmdir | ディレクトリを削除 |
ls | カレントディレクトリ直下のファイルとディレクトリを表示 |
quote site chmod | パーミッションの変更 |
prompt | 対話/非対話モードの切り替え(mgetやmput時にいちいち上書き確認等の確認を行わなくする) |
ascii | 転送モードをASCIIモードに |
bin | 転送モードをbinaryモードに |
hash | アップロード/ダウンロードの進行具合を#で表示 |
passive | パッシブモードに切り替え |
status | 現在の設定を表示 (prompt など) |
![command] | local ホストでのコマンドの実行。!ls や !mkdir等 |
? | コマンド一覧を表示 |
byeまたはquit | 終了 |
.netrc 
マクロ機能(一連の決まった処理を登録しておき、後で呼び出して実行する機能)を使うこともできます。まずホームディレクトリに
.netrc
というファイルを作成します。そのファイルに以下のように書きます。
machine [hostname or IPaddress] login [username] password [password] macdef [macroname] cd [hogehoge] lcd [hogehoge] get [hogehoge] macdef [macroname] cd [hogehoge] lcd [hogehoge] put [hogehoge] machine [hostname or IPaddress] login [username] password [password]
のように書いておきます。最後の行に1つ空行入れておかないとエラーになるみたいです。 パスワードを書いているので
% chmod 600 ~/.netrc
のように実行しておきましょう。 このようにしておくと、machine のところに書いたホストに接続した際に、 自動的にログインしてくれます。そして macdef のところで登録したマクロ名で
ftp> $[macroname]
のようにすることで macdef 以下から macdef まで(もしくは machine もしくはファイルの終りまで)に書かれた処理が一発で実行されます。しかし、これでもホスト名は入力しなければいけないので、それすらもめんどくさい人は、適当なファイルに、
open [hostname or IPaddress] user [username] [password] cd [hogehoge] lcd [hogehoge] get [hogehoge]
のように書いておき、
% ftp -n < [filename]
のようにリダイレクトすることで一括処理できます。-n というのはさっきの .netrc を読み込まないようにするオプションです。 .netrc を読み込んでマクロを使うのならば、ファイルに
open [hostname or IPaddress] $[macroname]
のように user 行をなくして、登録してあるマクロを記述し、
% ftp < [filename]
のようにするだけでOKになります。自分はこの方法でやっています。