tarとgdriveでのバックアップ。

サーバー内のコンテンツを毎日バックアップして、GoogleDriveへ保存する方法です。

以前VMでWindowsマシンが動作していたので、こういったバックアップをしていましたが、今回はCentOS内でバックアップする方法を。

(1)tarでバックアップなど
以前の記事を参照してもいいし、あらためて必要なフォルダをtarでバックアップしておきます。スクリプトを毎日cronで回すのもよいですよね。

[/etc/cron.d/kenti_backup]
#
#kenti.jp backup crontab 2017/11/28
#

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
MAILTO=******@****

00 5 * * * root /var/backup/_backup_log.sh
10 5 * * * root /var/backup/_backup.sh
30 5 * * * root /var/backup/_gdrive_backup.sh

(2)gdriveでバックアップ
GoogleDriveをCLIで使用するgdriveを使用します。最新版はリンクからダウンロードしてください.

# wget -O gdrive "https://docs.google.com/uc?id=0B3X9GlR6EmbnQ0FtZmJJUXEyRTA&export=download"
# chmod +x gdrive
# mv gdrive /usr/local/bin

とりあえずファイルの配置をした後、初期設定をします。

# gdrive
Go to the following link in your browser:  
https://accounts.google.com/o/oauth2/auth?client_id=..................

Enter verification code: 
(上記のURLにアクセスし、Googleアカウントを入力後認証コードが表示されるので入力)

その後、下記のコマンドを入力してみます。

# gdrive list
Id                                             Name                                     Type   Size       Created
1pBxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx              backup.tar.gz                            bin    900.0 KB    2017-11-26 14:55:02
1Ipxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx              backuplog.sql                            bin    806.2 KB   2017-11-26 14:53:49
:
:

フォルダの一覧などが表示されます。
単純な使い方として、同期したいフォルダをgdriveで指定すると、同期をしてくれます。ここでは例として、/var/backupへ保存してあるフォルダをそのままgdriveへsyncさせます。

# gdrive sync upload /var/backup/ xxxxxxxxxxx(gdriveのIdとして表示されるフォルダなど)

リモートバックアップとしてはかなり便利です。

※2017/12/09追記
上記のコマンドですと、ローカルのファイルが消えても、GoogleDriveへ残ったままの設定となります。
ローカルからファイルが消えたら、リモートのGoogleDriveフォルダも同様にファイルを消したいなら、下記のようにオプションスイッチをつけるとよいですね。

# gdrive sync upload --delete-extraneous /var/backup/ xxxxxxxxxxx(gdriveのIdとして表示されるフォルダなど)