LoginSignup
9
15

More than 3 years have passed since last update.

複数のRaspberry Pi同士でファイルを送受信する方法

Last updated at Posted at 2019-09-25

Raspberry Pi同士でファイルの送受信

 この記事は変デジ開発室の記事から移行したものです。

 複数のRaspberry Pi同士でファイルを送受信したくなるようなプログラムを作りたくなるときありますよね?そんなとき1からソフトをつくると大変ですが、Raspberry PiはLinuxなのでLinuxで使われている仕組みを使えば簡単にソフトをやりとりすることができます。

 今回は、簡単な例として2台のRaspberry Piでファイルの送受信を行う方法について説明します。これを応用すればRaspberry PiとPC、3台以上のRaspberry Piでのファイル送受信もできるようになります。

セットアップ

 2台のRaspberry Piを同一ネットワーク上に配置します。Raspberry Piに関しては、以下などを参考に基本的なセットアップはすましておきましょう。

Raspberry Pi 3にRaspbian Stretch/Jessieをセットアップする方法

 ここでは仮にそれぞれのhostnameを karaage00 karaage01という名前にしたとして説明します。同一ネットワーク上にいるPCから接続確認しましょう。例えばLinuxかMacだったら、以下コマンドで確認できます。

$ ping karaage00.local
$ ping karaage01.local

vsftpdセットアップ

 ファイルのやりとりはftpという仕組みを使用します。まずは1台のRaspberry Piにvsftpdというソフトを以下コマンドでインストールします。

$ sudo apt-get install -y vsftpd

 ただ、このままではファイルをvsftpdが入ったRaspberry Piからダウンロードはできるのですが、アップロードできないので、以下コマンドで/etc/vsftpd.confを編集します。

$ sudo vim /etc/vsftpd.conf

 以下のように変更します。

#write_enable=YES
を以下に変更
write_enable=YES

 設定を有効にするためにvsftpdを以下コマンドで再起動します。

$ sudo systemctl restart vsftpd.service

 ここではvsftpdがインストールされたRaspberry Piをkaraage00、もう一台をkaraage01とします。

ファイル送受信確認

ダウンロード

 あらかじめkaraage00の ホームディレクトリ直下(/home/pi)にtest.jpgというファイルを置いておきます。

 karaage01の方にdownload.shというファイルを以下コマンドで作成します。

$ vim download.sh

download.shの中身は以下をコピペしてください。

#!/bin/bash

ftp -n karaage00.local << _EOD
user pi raspberry
passive
binary
get test.jpg
bye
_EOD

 あとは、以下で実行権限を設定します。

$ chmod 755 download.sh

 以下コマンドを実行すると、karaage00test.jpgkaraage01にコピーされます。

./download.sh

アップロード

 逆にkaraage00にファイルを送信したい場合は、karaage01のホームディレクトリ直下にテスト用のtest2.jpgというファイルを用意して、download.shというファイルの代わりに以下のようなupload.shというファイルを用意して、同じ要領で送信してやればOKです。

#!/bin/bash

ftp -n karaage01.local << _EOD
user pi raspberry
passive
binary
put test2.jpg
bye
_EOD

 簡単ですね。

関連記事

Raspberry Piで作ったもの・やったことまとめ

Raspberry PiとArduino間でUSB経由のシリアル通信

9
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
15