Raspberry Piに外付けHDDをつけてファイルサーバにして、外付けHDDのバックアップとしてもう1つ外付けHDDをつなげました。
まずありえないと思うのですが地震雷火事などで外付けHDDとバックアップ用HDDが両方共消失した場合に備えて、重要ファイルだけGoogle DriveにバックアップするようにRaspberry Piを設定します。
Google Driveの無料スペースは15GBです。Gmailとかも合わせての容量ですが、Gmailは100MBも使っていないと思うので、基本15GB近く使えます。
もっと容量が欲しい人は
100GBで月1.99ドル、1TBで月9.99ドルになります。Googleドライブの保存容量のプラン
griveのインストールと設定
Raspberry PiでGoogle Driveを同期するのにgriveを使います。
参考サイト:Back up your Pi to your Google drive
参考サイトにしたがってインストールと設定を行います。
sudo apt-get update sudo apt-get upgrade sudo apt-get install git cmake build-essential libgcrypt11-dev libjson0-dev libcurl4-openssl-dev libexpat1-dev libboost-filesystem-dev libboost-program-options-dev binutils-dev libboost-test-dev libqt4-dev libyajl-dev git clone git://github.com/Grive/grive.git
State.ccを少し修正します。修正箇所251行、252行、256行
sudo vim grive/libgrive/src/drive/State.cc void State::Write( const fs::path& filename ) const { Json last_sync ; //last_sync.Add( "sec", Json(m_last_sync.Sec() ) ); //last_sync.Add( "nsec", Json(m_last_sync.NanoSec() ) ); last_sync.Add( "sec", Json((boost::uint64_t)m_last_sync.Sec() ) ); last_sync.Add( "nsec", Json((boost::uint64_t)m_last_sync.NanoSec() ) ); Json result ; result.Add( "last_sync", last_sync ) ; //result.Add( "change_stamp", Json(m_cstamp) ) ; result.Add( "change_stamp", Json((boost::uint64_t)m_cstamp) ) ; std::ofstream fs( filename.string().c_str() ) ; fs << result ; }
makeします。とても時間がかかります。
cd ./grive cmake . make
Google Drive用のディレクトリを作る
sudo mkdir /media/hdd1/google_drive sudo cp ./grive/grive /media/hdd1/google_drive cd /media/hdd1/google_drive sudo ./grive -a
表示されるURLをコピーしてブラウザに貼り付けて承認します。承認すると承認コードが表示されるので、それをコピーして所定の位置に承認コードを貼り付けます。
これで同期が開始されます。
同期といっても一度限りで、ずーと同期してくれるものではありません。
Shellスクリプトを作成します。
sudo vim /home/username/grive_backup.sh #!/bin/sh cd /media/hdd1/google_drive ./grive
crontabで人がアクセスしないような時間帯に同期をとるようにします。
sudo crontab -e 0 3 * * * sh /home/username/grive_backup.sh
真夜中の3時に同期をとることにしました。
Google Driveへのシンボリックリンクを無視するので、Google Driveからシンボリックリンクを作成します。
cd /media/hdd1/google_drive ln -s /media/hdd1/google_drive/samba_public /media/hdd1/samba/public/google_drive
これで共有フォルダ(public)にGoogle Driveのフォルダが作成されてそのフォルダ内のデータが毎夜Googleへバックアップされます。Sambaを入れていない人はRaspberry Piでファイルサーバ、Part1 Samba基本編を参考にしてください。
完了と思いきやWindowsから共有フォルダのgoogle_driveにアクセスできません。アクセスして書き込めるようにします。
cd /media/hdd1/google_drive sudo chown your_username:your_username samba_public sudo vim /etc/samba/smb.conf [global] wide links = yes follow symlinks = yes unix extensions = no sudo /etc/init.d/samba restart
これで共有フォルダのgoogle_driveにアクセスして書き込めるようになります。
実際、共有フォルダに重要ファイルを置くのはどうかと思いますが、上記のやり方で個人フォルダごとにgoogle_driveを割り当てることができます。個人ごとの重要ファイルはそこに入れて置けば他の人は削除できないので、そんな感じで使えば良いと思います。
コメントを残す