(100) Raspberry Piで FTPを使いたい。

投稿者: | 2018年10月28日

1. やりたいこと

ftpinsecure なのは承知済みだが。
ftp を使ってラズパイ内のファイルを外部サーバーへ送信したい。
ftp を使ってラズパイ内へファイルをアップロードしたい。
ftp を使ってラズパイ内からファイルをダウンロードしたい。

つまり…
ラズパイを FTPクライアント、FTPサーバーの両方で使いたい。

2. やってみる

(1) FTPクライアントとして使えるように

1) Raspberry Piに ftpをインストールする。

$ sudo apt-get install ftp

2) ftpコマンドでファイル転送する。

ftpコマンドを 1行でまとめて簡潔に書ければよいのだが、以下のようにファイルにコマンドを書いておき、これを ftpに読ませるのが分かり易いと思った。

HOST="www.example.com"
USER="aaaaa"
PASS="bbbbb"
FILE="ccccc.txt"
SCRIPT="ftpscript.txt"

CMD="
open $HOST
user $USER $PASS
ascii
put $FILE
quit
"

echo "$CMD" > $SCRIPT
ftp -n < $SCRIPT

ここまでの作業により、以下が出来るようになった。
・ラズパイ上で ftpコマンドを実行し、外部のFTPサーバーとの間のファイル送受信すること。

(2) FTPサーバーとして使えるように

1) Raspberry Piに vsftpdをインストールする。

sudo apt-get install vsftpd

sudo systemctl enable vsftpd
sudo systemctl restart vsftpd
sudo systemctl status vsftpd

2) vsftpdの設定を変更する。

既存の設定ファイルを退避しておく。

cd /etc
sudo cp vsftpd.conf vsftpd.conf.org

設定ファイルの中身を変更する。

sudo vi vsftpd.conf

1) 下記 3カ所のコメントを外して有効にする。

# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022

2) 下記 2カ所のコメントを外して有効にする。

# ASCII mangling is a horrible feature of the protocol.
ascii_upload_enable=YES
ascii_download_enable=YES

正しくログインできているのに FTPで
「ファイルが更新できない!」
「ファイルが削除できない!」
なんてときは write_enable=YES がコメントアウトされていたりする。

3) vsftpdを再起動する。

sudo systemctl restart vsftpd
sudo systemctl status vsftpd

ここまでの作業により、以下が出来るようになった。
・ラズパイ上のファイルを FTPでダウンロードすること。
・ラズパイ上にファイルを FTPでアップロードすること。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です