便利です。ファイル転送コマンド(FTP、SCP)の使い方

ファイル転送を行う2つのコマンド(FTP,SCP)の紹介です。

1.FTPコマンドの使い方

LANの中のファイルのやり取りに使用できるFTP(File Transfer Protocol)。使用する機会があったので、記録として残しておきます。

但し、ftpを実行するにはルータを開放しておく必要ありますので、ポートを開放しました。ポート番号は、21です。設定が終わると、自動的にftp になっています。

ファイルをWindowsから raspberrypi へ転送してみました。

手順を踏まねばなりませんが、ファイルをパソコンから raspberrypi に移すことが出来ます。これで、USBメモリを介したファイルの移動をするめんどうくささから開放されます。

(1) ftpを起動

コマンドプロンプトを立ち上げ、ftp と入力し、Enterキーを押します。

C:\XXXXX\XXXXX>ftp

(2) ラズパイに接続

Raspberrypi に接続します。open コマンドですが、続けて Raspberrypi の IPアドレスを入力します。Enterキーを押すと、Raspberrypi のユーザID とパスワードを求められるので入力します。

正しい値を入力すると接続完了(Login successful)です。

ftp> open 192.168.XXX.YYY
www.mizutan.com に接続しました。
220 (vsFTPd 3.0.2)
ユーザー (www.mizutan.com:(none)): XXXXX  ◆RaspberrypiのユーザID 入力
331 Please specify the password.
パスワード:XXXXXXXXXX  ◆Raspberrypiのパスワード 入力
230 Login successful.

※注意事項

下記のエラーが出た場合は、raspberrypi の /etc/ にある vsftpd.conf の最後に、次の一文を追加してください。

allow_writeable_chroot=YES

追加後、vsftpd の restart を忘れず実施してください。

sudo service vsftpd restart

(3) 転送元のファイル確認

windows側のディレクトリの内容を確認するには、!dir と打ち込みます。下記のように、そのディレクトリにあるファイルとディレクトリが表示されます。

ftp> !dir
ドライブ C のボリューム ラベルは OS です
ボリューム シリアル番号は 3A83-7E69 です
C:\XXXXX\XXXXX のディレクトリ
2017/02/28 11:55 <DIR> .
2017/02/28 11:55 <DIR> ..
2017/02/23 11:01 87,923 101_01_1config_err1.jpg
2015/03/24 10:27 <DIR> Contacts
2017/02/28 11:17 <DIR> Desktop
2016/11/07 11:02 <DIR> Documents
2017/02/28 09:41 <DIR> Downloads
2015/03/24 10:27 <DIR> Favorites
2015/03/24 10:27 <DIR> Links
2015/03/24 10:27 <DIR> Music
2016/11/07 11:03 <DIR> Pictures
2015/03/24 10:27 <DIR> Saved Games
2015/03/24 10:27 <DIR> Searches
2015/03/24 10:27 <DIR> Videos
1 個のファイル 87,923 バイト
13 個のディレクトリ 451,159,891,968 バイトの空き領域

(4) リモートディレクトリの指定

今度はリモート側即ち raspberrypi 側のディレクトリを指定します。cd コマンドですね。

ftp> cd /XXXXX/XXXXX/
250 Directory successfully changed.

(5) 転送モードの設定

転送するファイルの種類にあわせて、転送モードを指定します。

ftp> bin    ◆jpgなので、バイナリ形式のbinを指定。
200 Switching to Binary mode.

(6) ファイルの転送

put コマンドでファイルの転送(windows から raspberrypi へ)を行います。

ftp> put 101_01_1config_err1.jpg
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
ftp: 87923 バイトが送信されました 0.14秒 628.02KB/秒。 ◆転送成功 ◆バイト数も一致

(7) ftpの終了

FTPサーバとの接続を閉じ、ftpを終了させます。quit でも同様の操作が出来ます。

ftp>bye
221 Goodbye

参考:例も適切ですばらしい。以下のページを見れば ftp の使い方が良くわかります。

ftpコマンド(Windows)

2.FTP よりも便利な scp コマンド

ファイル転送と言えば、FTP(File Transfer Protocol)ということで、サーバ間のファイル転送には、もっぱら、これに頼っていたんですが、師匠の50オヤジから、こんな方法もありますよと教えてもらったのが scpコマンドです。

これが便利。ftpのように順を踏んで転送をする必要がなく、コマンド一発でファイル転送ができます。

但し、windows と Linux の間では使用できません。しかし、Linux間であれば、このコマンドの方が何度もコマンドを打つ必要がないので非常に簡単です。

scp [オプション][転送したいファイル名][転送先のパス]

(1) サーバ間のファイル転送

60爺のサーバ100から110へのファイル転送は、これで一発です。

scp YYYYYYY_network.jpg XXXXXXX@192.168.XXX.110:/home/XXXXXXX

(2) ダウンロード

(1) の逆のコピーも簡単です。転送先と転送元を逆さにするだけです。

scp XXXXXXX@192.168.XXX.110:/home/XXXXXXX/YYYYYYY_network.jpg /home/XXXXXXX

(3) ディレクトリの転送

ディレクトリの転送も、オプションに -r を使えばOKです。

scp -r /home/XXXXXXX/Directory XXXXXXXX@192.168.XXX.110:/home/XXXXXXX/

参考:SCPコマンドでローカルのファイルをサーバにアップ&サーバ上のファイルをDL