VPSのデータを安全なCloudflare R2へ自動バックアップするための最適化した「SSL証明書対応・超高速化済み」の完成版スクリプトと、いざという時のメンテナンス(削除・停止)コマンドをすべてまとめました。
コピペしてそのまま使えるリファレンスとしてご活用ください。
サーバー自動バックアップ完全構築マニュアル
1. Cloudflare R2 の準備
- Cloudflareダッシュボードの「R2」からバケットを作成(例:
your-bucket-name)。 - R2トップ画面の「APIトークンの管理」から 「アカウント API トークン」 を作成。
- 権限:
オブジェクトの読み取りと書き込み - 適用先:
作成したバケットのみ
- 権限:
- 発行された 「S3 API URL」「アクセスキー ID」「シークレットアクセスキー」 を控える。
2. rcloneの確実なインストール
IPv6通信のフリーズを避けるため、GitHubから直接ダウンロードして配置します。
3. rcloneとR2の接続設定
システムデータをバックアップするため、必ず rootユーザー で設定します。
n(新規) → 名前:cloudflare_r2- Storage:
s3→ Provider:Cloudflare env_auth:false- アクセスキー、シークレットキー、S3 API URLを入力。
acl:private
接続テスト:
4. 最強のバックアップスクリプト作成
SSL証明書の実体を辿り(-L)、重いモジュール群を除外(--exclude)し、並列処理(--transfers)で爆速化。さらに**「誤操作によるデータ喪失」を防ぐ退避機能(ゴミ箱)**を備えた完成版です。
スクリプト内容:
実行権限の付与:
5. 定期実行(cron)の登録
例:毎日深夜3時に自動実行し、エラー時のみログに出力させます。
追記内容:
0 3 * * * /root/backup.sh >> /var/log/vps_backup.log 2>&16. ヒューマンエラー対策:ゴミ箱の自動お掃除設定(ライフサイクル)
スクリプトで --backup-dir を設定したため、VPS上で間違って消してしまったファイルもR2の archive/ フォルダ内に退避されます。このゴミ箱が無限に増え続けるのを防ぐため、Cloudflare側で自動削除ルールを設定します。
- Cloudflare R2ダッシュボードで対象バケットの「設定 (Settings)」を開く。
- 「オブジェクトのライフサイクルルール」から「ルールの追加」をクリック。
- ルール名:
Delete old archives等 - プレフィックス (Prefix):
archive/(※重要:必ず指定してください) - アクション:
次の後に、アップロードされたオブジェクトを削除するを選択。 - 経過日数:
30 - 保存する。
これで、30日間は復元可能な猶予を残しつつ、クラウドの容量を自動で節約できる鉄壁のシステムが完成です。
メンテナンス用コマンド集(リセット・停止・確認)
いざという時に、バックグラウンドの処理を制御したり、R2の中身を綺麗にするためのコマンド一覧です。すべて rootユーザー (sudo su -) で実行してください。
停止と確認
現在動いている rclone の確認:
動いている rclone をすべて強制終了(強制キル):
バケットの中身を空にする(完全リセット)
※ブラウザでバケットごと削除して作り直すのが一番早いですが、コマンドでやる場合は以下を使用します。
超高速で中身のファイルをすべて削除(裏側で実行):
(※上記実行後、ps aux | grep rclone で処理が終わったか確認します)
ファイル削除後、残った空のフォルダ構造を削除:
手動バックアップの実行
ターミナルを閉じても裏側で初回バックアップを走らせる:
これで、環境を再構築する際や、トラブル発生時のリセットにも即座に対応できます!