✅ はじめに
rcloneとbashスクリプトのみで、Google Driveと連携したバックアップ&リストアが可能です。
📁 フォルダ構成(ローカル)
~/backup/
├── scripts/ # バックアップ・復元スクリプト本体
├── data/ # .tgz形式でバックアップされたデータ
└── logs/ # スクリプトのログ出力(任意)
☁ フォルダ構成(Google Drive)
gdrive:/backup/
├── scripts/ # scripts_latest.tgz(scriptsディレクトリを圧縮)
├── data/ # mail/ や ssh/ などの .tgz ファイルを格納
└── ReadMe.md # 利用ガイド
🛠 スクリプト命名規約
すべてのスクリプトは以下の命名規約で統一:
種別 | 命名例 | 機能説明 |
---|---|---|
backup | ssh_backup.sh | 指定フォルダを .tgz 化 |
post | ssh_post.sh | .tgz を Google Drive へ送信 |
fetch | ssh_fetch.sh | .tgz を Google Drive から取得 |
restore | ssh_restore.sh | .tgz を展開して復元 |
scripts, ssh, mail など対象別に4種ずつ作成。cron用に cron_*.sh
を追加することもあります。
🚀 初回セットアップ(bootstrap.sh)
新環境で以下の手順を実行:
# 1. rclone のインストール
sudo apt update
sudo apt install rclone
# 2. Google Driveとの連携設定
rclone config # remote名は "gdrive" 推奨
# 3. スクリプト一式の取得と展開
wget https://your.gdrive.url/scripts_latest.tgz
mkdir -p ~/backup/scripts
tar -xvzf scripts_latest.tgz -C ~/backup/scripts
# 4. PATH追加(任意)
echo 'export PATH=$HOME/backup/scripts:$PATH' >> ~/.bashrc
source ~/.bashrc
※ bootstrap.sh
を使えば上記は全自動になります。
📦 cron設定例(自動バックアップ)
# crontab -e に以下を追加(例:3:15 AMに実行)
15 3 * * * ~/backup/scripts/scripts_backup.sh
20 3 * * * ~/backup/scripts/scripts_post.sh
30 3 * * * ~/backup/scripts/ssh_backup.sh
35 3 * * * ~/backup/scripts/ssh_post.sh
40 3 * * * ~/backup/scripts/mail_backup.sh
45 3 * * * ~/backup/scripts/mail_post.sh
🧪 リストア手順(復元)
必要な .tgz
を fetch して restore:
# 例:ssh
~/backup/scripts/ssh_fetch.sh
~/backup/scripts/ssh_restore.sh
📄 付属ファイル(Google Driveに置く)
bootstrap.sh
:最初にDLして実行する初期化スクリプトscripts_latest.tgz
:scriptsディレクトリを圧縮したものReadMe.md
:この記事と同等の内容
🔚 まとめ
- シェルスクリプトで管理しやすく、拡張も簡単
- 構成をテンプレ化すれば他用途にも応用可能!
🔧 スクリプトテンプレート(例:SSHバックアップ)
以下は ~/backup/scripts/
に配置するテンプレートスクリプトの例です。必要に応じて mail_*.sh
や scripts_*.sh
にも応用してください。
template_ssh_backup.sh
#!/bin/bash
# SSH設定のバックアップ
tar czf ~/backup/data/ssh_latest.tgz ~/.ssh
template_ssh_post.sh
#!/bin/bash
# SSHバックアップのGoogle Driveアップロード
rclone copy ~/backup/data/ssh_latest.tgz gdrive:/backup/data/
template_ssh_fetch.sh
#!/bin/bash
# SSHバックアップの取得
rclone copy gdrive:/backup/data/ssh_latest.tgz ~/backup/data/
template_ssh_restore.sh
#!/bin/bash
# SSH設定の復元
tar xzf ~/backup/data/ssh_latest.tgz -C ~
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*
コメント