OpenPogoにより ipkg のインストールが可能になったので、rsyncでの同期を試みることにしました。
基本的には既存のファイルサーバ(ホスト名:marvel・・・・実体は玄箱PROです)からファイルを引っ張ってくるだけにしました。
できればファイルサーバ側からPogoPlugにファイルを置きにくる形を取りたいところですが、PogoPlugはDHCPでIPアドレスを取得するのでIPアドレス固定での設定ができません。そこで、PogoPlug側からファイルを取りにくる形をとりました。
大きな設定の流れは以下の通りです。
- PogoPlug(OpenPogo)にはrsync,openssh,cronなどをインストール
- インストール後、ssh-keygenでパスフレーズなしの鍵ペアを生成して、公開鍵をサーバ側に転送してPogoPlug側からパスワード無しでsshログインできるようにする
- rsyncコマンドで必要な範囲を同期するスクリプトを作成する
- crontabで定期的に同期するようにする
同期のためのスクリプトはPogoPlugに接続しているHDDのデバイスファイルが変化することがあるので、こんな感じでHDD上のフォルダ有無で転送する先を確認するようにしました。
#!/bin/sh if [ -d /tmp/.cemnt/mnt_sda/MARVEL ] then { rsync -a -e "ssh -i /root/.ssh/id_rsa.marvel" root@192.168.1.5:/home/common/ /tmp/.cemnt/mnt_sda/MARVEL } fi if [ -d /tmp/.cemnt/mnt_sdb/MARVEL ] then { rsync -a -e "ssh -i /root/.ssh/id_rsa.marvel" root@192.168.1.5:/home/common/ /tmp/.cemnt/mnt_sdb/MARVEL } fi if [ -d /tmp/.cemnt/mnt_sdc/MARVEL ] then { rsync -a -e "ssh -i /root/.ssh/id_rsa.marvel" root@192.168.1.5:/home/common/ /tmp/.cemnt/mnt_sdc/MARVEL } fi if [ -d /tmp/.cemnt/mnt_sdd/MARVEL ] then { rsync -a -e "ssh -i /root/.ssh/id_rsa.marvel" root@192.168.1.5:/home/common/ /tmp/.cemnt/mnt_sdd/MARVEL } fi
これでコマンドラインからはrsyncが動作するのですが、なぜかcronからは動作しません。もう少し調整が必要なようです。