rcloneで作る最軽量バックアップ&リストア環境(Linux用)

未分類

✅ はじめに

rcloneとbashスクリプトのみで、Google Driveと連携したバックアップ&リストアが可能です。


📁 フォルダ構成(ローカル)

~/backup/
├── scripts/         # バックアップ・復元スクリプト本体
├── data/            # .tgz形式でバックアップされたデータ
└── logs/            # スクリプトのログ出力(任意)

☁ フォルダ構成(Google Drive)

gdrive:/backup/
├── scripts/         # scripts_latest.tgz(scriptsディレクトリを圧縮)
├── data/            # mail/ や ssh/ などの .tgz ファイルを格納
└── ReadMe.md        # 利用ガイド

🛠 スクリプト命名規約

すべてのスクリプトは以下の命名規約で統一:

種別命名例機能説明
backupssh_backup.sh指定フォルダを .tgz
postssh_post.sh.tgz を Google Drive へ送信
fetchssh_fetch.sh.tgz を Google Drive から取得
restoressh_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_*.shscripts_*.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/*

コメント

タイトルとURLをコピーしました