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からは動作しません。もう少し調整が必要なようです。
