Solaris のシステム管理 (第 2 巻)

リモートシステムへのログイン (ftp)

ftp コマンドは、インターネットのファイル転送プロトコルへのユーザーインタフェースを提供します。このユーザーインタフェースはコマンドインタプリタと呼ばれ、リモートシステムにログインし、そのファイルシステムについて様々な処理を実行できるようにします。基本操作については、表 10-2 を参照してください。

rloginrcp と比較して ftp の主な利点は、ftp の場合はリモートシステムで UNIX が実行されていなくてもかまわないことです (ただし、リモートシステムは TCP/IP 通信を利用できることが必要です)。これに対して、rlogin の方が ftp よりも多数のファイル操作コマンドを使用できます。

リモートログインの認証 (ftp)

ftp リモートログインの認証は、次のどちらかの方法で行われます。

重要な ftp コマンド

表 10-2 重要な ftp コマンド

コマンド 

機能 

ftp

ftp コマンドインタプリタにアクセスする

ftp remote-system

リモートシステムへの ftp 接続を確立する。詳細は、ftp によりリモートシステムへ接続する方法」を参照

open

コマンドインタプリタからリモートシステムにログインする 

close

リモートシステムからログアウトしてコマンドインタプリタに戻る 

bye

ftp コマンドインタプリタを終了する

help

すべての ftp コマンドを表示するか、コマンド名が指定されている場合は、コマンドの機能に関する簡単な説明を表示する

reset

リモートの ftp サーバーとコマンド応答シーケンスの同期をとり直す

ls

リモートの作業用ディレクトリの内容を表示する 

pwd

リモートの作業用ディレクトリ名を表示する 

cd

リモートの作業用ディレクトリを変更する 

lcd

ローカルの作業用ディレクトリを変更する 

mkdir

リモートシステム上でディレクトリを作成する 

rmdir

リモートシステム上でディレクトリを削除する 

get、mget

リモートの作業用ディレクトリからローカルの作業用ディレクトリに 1 つ以上のファイルをコピーする 

put、mput

ローカルの作業用ディレクトリからリモートの作業用ディレクトリに 1 つ以上のファイルをコピーする 

delete、mdelete

リモートの作業用ディレクトリから 1 つ以上のファイルを削除する 

詳細は、ftp(1) のマニュアルページを参照してください。

ftp によりリモートシステムへ接続する方法

  1. ftp 認証を持っていることを確認します。

    「リモートログインの認証 (ftp)」で説明しているように、ftp 認証を持っている必要があります。

  2. ftp コマンドを使用してリモートシステムへ接続します。


    $ ftp remote-system
    

    接続に成功すると、確認メッセージとプロンプトが表示されます。

  3. ユーザー名を入力します。


    Name (remote-system:user-name): user-name
    
  4. プロンプトが表示されたら、パスワードを入力します。


    331 Password required for user-name:
    Password: password
    

    アクセス中のシステムに anonymous ftp アカウントが確立されている場合は、パスワードの入力を求めるプロンプトが表示されません。ftp インタフェースがパスワードを受け入れると、確認メッセージと (ftp>) プロンプトを表示します。

    これで、help など、ftp インタフェースから提供されるどのコマンドでも使用できます。主なコマンドについては、表 10-2 を参照してください。

例 - ftp によりリモートシステムへ接続する

次の ftp セッションは、リモートシステム pluto 上でユーザー smith によって確立されました。


$ ftp pluto
Connected to pluto.
220 pluto FTP server (SunOS 5.8) ready.
Name (pluto:smith): smith
331 Password required for smith:
Password: password
230 User smith logged in.
ftp>

リモートシステムとの ftp 接続を終了する方法

bye コマンドを使用して、リモートシステムとの ftp 接続を終了します。


ftp> bye
221 Goodbye.
earth%

接続を終了するメッセージに続いて、通常のシェルプロンプトが表示されます。

リモートシステムからファイルをコピーする方法 (ftp)

  1. リモートシステムからファイルをコピーしたい、ローカルシステム上のディレクトリに変更します。


    $ cd target-directory
    
  2. ftp により接続します。

    ftp によりリモートシステムへ接続する方法」を参照してください。

  3. コピー元ディレクトリに変更します。


    ftp> cd source-directory
    

    システムがオートマウンタを使用している場合、リモートシステムのユーザーのホームディレクトリは、/home の下にユーザーのホームディレクトリと並行して表示されます。

  4. コピー元ファイルの読み取り権があることを確認します。


    ftp> ls -l
    
  5. ファイルを 1 つコピーするには、get コマンドを使用します。


    ftp> get filename
    
  6. 一度に複数のファイルをコピーするには、mget コマンドを使用します。


    ftp> mget filename [filename ...]

    個々のファイル名を続けて入力するか、ワイルドカード文字を使用できます。mget コマンドでは、個々のファイルがコピーされ、そのたびに確認を求めるプロンプトが表示されます。

  7. ftp による接続を終了します。


    ftp> bye
    

例 - リモートシステムからファイルをコピーする (ftp)

次の例では、ユーザー kryten は、システム plutoftp 接続し、get コマンドを使用して /tmp ディレクトリから自分のホームディレクトリにファイルを 1 つコピーします。


$ cd $HOME
ftp pluto
Connected to pluto.
220 pluto FTP server (SunOS 5.8) ready.
Name (pluto:kryten): kryten
331 Password required for kryten.
Password: xxx
230 User kryten logged in.
ftp> cd /tmp
250 CWD command successful.
ftp> ls
200 PORT command successful.
150 ASCII data connection for /bin/ls (129.152.221.238,34344) 
(0 bytes).
dtdbcache_:0
filea
files
ps_data
speckeysd.lock
226 ASCII Transfer complete.
53 bytes received in 0.022 seconds (2.39 Kbytes/s)
ftp> get filea
200 PORT command successful.
150 ASCII data connection for filea (129.152.221.238,34331) 
(0 bytes).
226 ASCII Transfer complete.
ftp> bye
221 Goodbye.

次の例では、同じユーザー krytenmget コマンドを使用して、/tmp ディレクトリから自分のホームディレクトリに複数のファイルをコピーします。kryten は、個々のファイルについてコピーするか、しないかの選択ができることに注意してください。


$ ftp> cd /tmp
250 CWD command successful.
ftp> ls files
200 PORT command successful.
150 ASCII data connection for /bin/ls (129.152.221.238,34345) 
(0 bytes).
fileb
filec
filed
226 ASCII Transfer complete.
remote: files
21 bytes received in 0.015 seconds (1.36 Kbytes/s)
ftp> cd files
250 CWD command successful.
ftp> mget file*
mget fileb? y
200 PORT command successful.
150 ASCII data connection for fileb (129.152.221.238,34347) 
(0 bytes).
226 ASCII Transfer complete.
mget filec? y
200 PORT command successful.
150 ASCII data connection for filec (129.152.221.238,34348) 
(0 bytes).
226 ASCII Transfer complete.
mget filed? y
200 PORT command successful.
150 ASCII data connection for filed (129.152.221.238,34351) 
(0 bytes).
226 ASCII Transfer complete.200 PORT command successful.
ftp> bye
221 Goodbye.

ファイルをリモートシステムにコピーする方法 (ftp)

  1. ローカルシステム上のコピー元ディレクトリに変更します。

    ftp コマンドを入力して接続するディレクトリは、ローカルの作業用ディレクトリ、つまりこの操作のコピー元ディレクトリになります。

  2. ftp により接続します。

    ftp によりリモートシステムへ接続する方法」を参照してください。

  3. コピー先ディレクトリに変更します。


    ftp> cd target-directory
    

    ローカルシステムでオートマウンタを使用中であれば、/home の下に自分のホームディレクトリと並行してリモートシステムのユーザーのホームディレクトリが表示されるので注意してください。

  4. コピー先ディレクトリへの書き込み権があることを確認します。


    ftp> ls -l target-directory
    
  5. ファイルを 1 つコピーするには、put コマンドを使用します。


    ftp> put filename
    
  6. 一度に複数のファイルをコピーするには、mput コマンドを使用します。


    ftp> mput filename [filename ...]

    個々のファイル名を続けて入力するか、ワイルドカード文字を使用できます。mput コマンドでは、個々のファイルがコピーされ、そのたびに確認を求めるプロンプトが表示されます。

  7. ftp による接続を終了するには、bye と入力します。


    ftp> bye
    

例 - ファイルをリモートシステムにコピーする (ftp)

次の例では、ユーザー kryten はシステム plutoftp により接続し、put コマンドを使用して自分のシステムからシステム pluto/tmp ディレクトリにファイルをコピーします。


$ cd /tmp
ftp pluto
Connected to pluto.
220 pluto FTP server (SunOS 5.8) ready.
Name (pluto:kryten): kryten
331 Password required for kryten.
Password: xxx
230 User kryten logged in.
ftp> cd /tmp
250 CWD command successful.
ftp> put filef
200 PORT command successful.
150 ASCII data connection for filef (129.152.221.238,34356).
226 Transfer complete.
ftp> ls
200 PORT command successful.
150 ASCII data connection for /bin/ls (129.152.221.238,34357) (0 bytes).
dtdbcache_:0
filea
filef
files
ps_data
speckeysd.lock
226 ASCII Transfer complete.
60 bytes received in 0.058 seconds (1.01 Kbytes/s)
ftp> bye
221 Goodbye.

次の例では、同じユーザー krytenmput コマンドを使用して自分のホームディレクトリから pluto/tmp ディレクトリに複数のファイルをコピーします。kryten は、個々のファイルについてコピーするか、しないかを選択できることに注意してください。


$ cd $HOME/testdir
$ ls
test1   test2   test3
$ ftp pluto
Connected to pluto.
220 pluto FTP server (SunOS 5.8) ready.
Name (pluto:kryten): kryten
331 Password required for kryten.
Password: xxx
230 User kryten logged in.
ftp> cd /tmp
250 CWD command successful.
ftp> mput test*
mput test1? y
200 PORT command successful.
150 ASCII data connection for test1 (129.152.221.238,34365).
226 Transfer complete.
mput test2? y
200 PORT command successful.
150 ASCII data connection for test2 (129.152.221.238,34366).
226 Transfer complete.
mput test3? y
200 PORT command successful.
150 ASCII data connection for filef (129.152.221.238,34356).
226 Transfer complete.
ftp> bye
221 Goodbye.