18,677 views
この記事は最終更新から 1806日 が経過しています。
1. やりたいこと
ftp が insecure なのは承知済みだが。
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 start 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でアップロードすること。