Raspberry Piで動作させるNode.jsのプロジェクトをリモートで開発すると、いつでも環境を持ち歩かないと開発できなくなります。そこでハードウェア固有の事項が絡む部分以外は、Mac上のNodeで開発をする事にしました。で、ある程度形になったのでRaspberry Piに転送しようと思うのですが、開発しながらリモートのファイルをいじることもあり得るので、SFTPでの上書き更新では無く、rsyncによる同期を試してみることにします。参考にしたのはこちら。rsync でディレクトリの同期(バックアップ) – maruko2 Note. rsyncがデフォルトでsshに対応しているので、Raspberry Pi側にサーバを追加する必要が無いのがお手軽でよいです。遅いらしいですが、LAN有線なので気になりませんでした。
kawauchiyasuo-no-MacBook-Pro:~ yasuo$ rsync -av -e ssh kt/ pi@raspberrypi.local:/home/pi/ktpi@raspberrypi.local's password: building file list ... done./.DS_Storeapp.jsapp.js.mapapp.tscolors.d.tscourse.js(中略)typings/main/ambient/typings/main/ambient/node/typings/main/ambient/node/index.d.tswww/www/.DS_Storewww/index.htmlsent 492485 bytes received 47852 bytes 72044.93 bytes/sectotal size is 4055183 speedup is 7.50
結構なファイル数を更新しても数秒でした。試しにファイル3つだけ更新して同期させると以下の通り。
kawauchiyasuo-no-MacBook-Pro:~ yasuo$ rsync -av -e ssh kt/ pi@raspberrypi.local:/home/pi/ktpi@raspberrypi.local's password: building file list ... doneapp.jsapp.js.mapapp.tssent 16119 bytes received 194 bytes 4660.86 bytes/sectotal size is 4055202 speedup is 248.59
一瞬です。毎回パスワードの入力をしないといけないのが面倒ですね。このあたりはssh keyで対応できるのでしょう。 “””