LoginSignup
2
6

More than 5 years have passed since last update.

ローカルでコードを書いて、RaspberryPiにrsyncで送って実行する話

Posted at

Macとラズパイで同じPythonやNodeJSが動くからとMac上でコード書いてデバッグして(納品前日とかに)いざラズパイで動かそうとすると全然挙動が違って焦る。iPhoneアプリ開発とかでもそうだけど、実機デバッグは基本。
RaspberryPi上でコーディングしようとするとGPIOをショートさせてクラッシュしたり電源の能力不足で落ちたりなど非常に辛くて人生が終わってしまうのでMacでコードを書いてscpなりでRaspberryPiに転送して実行するのが普通だと思いますが、rsyncを使うといろいろと捗ります。

  • IPアドレスをコマンドライン引数から読み込むようにします
  • IPアドレスとか電源いれるたびに変わるので ssh option でHostKeyのチェックをスキップします
  • ラズパイが応答しなければ3秒で切断します
  • .gitとかnode_modulesとか一緒に送りたくないものは--execludeに指定します
  • リモートのディレクトリは、~/sugos-tutorial-01が指定されています

以下をupload.shとしてソースコードのあるディレクトリにおいておきます。
chmod +x upload.shを忘れずに。

#!/bin/bash
TARGET_IP_ADDR=$1
SSH_OPTIONS="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ServerAliveInterval=1 -o ServerAliveCountMax=3"
rsync -av -e "ssh ${SSH_OPTIONS}" --exclude 'node_modules' ./ pi@${TARGET_IP_ADDR}:sugos-tutorial-01

使い方

ラズパイのIPアドレスを192.168.1.47とします。

./upload.sh 192.168.1.47
2
6
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
2
6