RaspberryPiのデータをrsync + sshで別サーバに同期
公開日:
:
プログラミング, 事務職のプログラミング
RaspberryPi上のデータをrsync + sshで外部サーバにバックアップを取る方法を記録しておきます。差分だけ同期にしておくとテキストデータなら一瞬で同期完了。
ネットワーク越しにssh経由でrsync
シェルスクリプト、というかコマンドは以下。
1 2 |
#!/bin/sh /usr/bin/rsync -e "ssh -p 22" -auvz --no-p /home/sender/data/ hoge@domain.com:/home/receiver/data_1/ |
前提として、送信側から受信側にsshで接続できていること。つまり、受信側の/home/receiver/.ssh/authorized_keysに送信側の/home/sender/.ssh/id_rsa.pubを貼り付けてあり、公開鍵方式でsshでの通信テストを終えていること。
- -p 22でsshのポート指定。通常、オリジナルの22から変更してあるはず。
- /home/sender/data/ディレクトリをまるごと、宛先の/home/receiver/data_1/に同期。
- -e sshでsshを使用しての転送となるが、ポートナンバーを指定するためにダブルクオーテーションで囲った。
- -auvzはrsync を使用して2つのディレクトリの同期をとる方法を参考にしました。
- -a, –archive 可能な限りファイルの情報を保持します。
- -u, –update 更新されたファイルだけ転送します。
- -v, –verbose 冗長にメッセージを出力します。
- -z, –compress ファイルを圧縮します。
- –no-pオプションはなぜつけたのか失念してしまった(1年前にやったことなので)。
- hoge@domain.com:/home/receiver/はhogeはユーザ名、domain.comはサーバ名、コロンで区切って、保存するディレクトリ名
RaspberryPiにWindowsの共有ディレクトリをマウントするfstab
ウィンドウズPC(xxx.xxx.xxx.xxx)の共有ディレクトリ(Datafile)をRasPiにマウントするために/etc/fstabを以下のように。
1 |
//xxx.xxx.xxx.xxx/Datafile /mnt/win_data cifs username=raspi,password=xxxxxxxx,uid=pi,gid=pi,file_mode=0701,dir_mode=0700,defaults 0 0 |