複数のRaspberry Pi同士でファイルを送受信するスクリプト

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 最新セットアップ情報  Raspberry Pi 3のセットアップ記事(Raspberry Pi 2でも参考にな...

 ここでは仮にそれぞれの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関係でセットアップや開発、電子工作に必須の部品・機器を紹介します。基本的に...

スポンサーリンク
レクタングル(大)広告
レクタングル(大)広告

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
レクタングル(大)広告