【2026年1月最新】マイクラサーバー自動バックアップ完全攻略!rcloneでクラウド保存

マイクラサーバーの自動バックアップは、rcloneを使えば無料でクラウドストレージに保存できます。cronで定期実行すれば、データ消失のリスクから完全に守れます。本記事では、Linux VPSでのrclone設定からGoogle Drive・OneDrive連携、自動化スクリプトの作成まで、初心者でも実装できるよう画像付きで完全解説します。

更新情報(2026年1月):本記事はLinux VPS運用を前提に、rclone+cronで「圧縮→クラウド転送→世代管理→検証まで」を一気通貫で自動化します。クラウドやVPSの料金・仕様・上限(クォータ)は改定されるため、重要な数値は公式ページで最新情報も併せて確認してください。

要点

  • rcloneは70以上のクラウドストレージに対応する無料オープンソースツール
  • cronを使った自動バックアップで毎日深夜に安全保存
  • 差分同期・圧縮・暗号化機能で容量とコストを最小化
  • バックアップの検証と復元手順で万が一に備える
  • XServer VPS・ConoHa VPSなど主要サービスで動作確認済み

目次

なぜ自動バックアップが必要なのか?

マイクラサーバーでは、プレイヤーの建築物やアイテム、進行状況がすべてサーバー側に保存されます。サーバークラッシュ、ハードウェア故障、誤操作によるデータ消失は、数ヶ月の努力を一瞬で失うことになります。

データ消失の主な原因

  • サーバークラッシュ ? 突然の停止によるワールド破損(チャンクエラー)
  • ストレージ故障 ? HDDやSSDの物理的な故障
  • 人為的ミス ? 誤った削除やコマンド実行
  • プラグイン・MOD障害 ? 互換性問題による設定ファイル破損
  • マルウェア・不正アクセス ? セキュリティ侵害によるデータ改ざん

バックアップの考え方(失敗しにくい形):可能なら「3-2-1(データは3つ、媒体は2種類、うち1つはオフサイト)」を目標にすると堅牢です。本記事の構成は、(1)サーバー本体(稼働データ)+(2)ローカル圧縮バックアップ+(3)クラウド(オフサイト)を作るため、現実的に3-2-1に近づけられます。

  • 最低ライン:クラウドに毎日1回(7世代以上)
  • 余裕があれば:週次(4世代)+月次(3世代)を別フォルダで残す
  • 運用のコツ:復元テスト(後述)を「月1回」だけでも必ず実施

手動バックアップでは、作業を忘れたり後回しにしがちです。rcloneによる自動バックアップなら、設定後は完全に放置でき、クラウドストレージに安全に保管されます。


rcloneとは?対応クラウドストレージ一覧

rcloneは、ローカルストレージとクラウドストレージ間でファイルを同期・転送するためのコマンドラインツールです。Go言語で書かれた単一バイナリで、Windows・Linux・macOSすべてで動作します。

rcloneの主な特徴

  • 70以上のクラウドストレージに対応(Google Drive、OneDrive、Dropbox、Amazon S3など)
  • 無料で利用可能(オープンソース)
  • 差分同期(sync)・単純コピー(copy)・双方向同期ではなく「片方向バックアップ」に強い
  • 暗号化(crypt)・帯域制限(bwlimit)・転送最適化(transfers/checkers)など運用向け機能が豊富

rcloneは「copy/syncでの転送」「ハッシュ比較(check)」「暗号化レイヤ(crypt)」「マウント(mount)」「リモート操作(rc)」など、運用に必要な機能が一通り揃っています。公式ドキュメントも充実しているので、迷ったらまず公式を参照すると確実です。

対応する主要クラウドストレージ

サービス無料容量特徴
Google Drive15GBGoogleアカウントで即利用可能
OneDrive5GBMicrosoft 365連携
Dropbox2GB高速同期
Amazon S35GB(12ヶ月)信頼性の高いストレージ
Backblaze B210GB低コスト・高容量

rcloneのインストールと初期設定

まずはサーバーにrcloneをインストールし、設定ファイルを作成します。インストール方法はOSによって異なりますが、Linux VPSならパッケージ管理(apt/yum)または公式スクリプトで簡単に導入できます。

参考(日本語動画):操作画面を見ながら進めたい方は、rclone入門の日本語解説動画も併用すると理解が早いです(動画内容は投稿時点のUI/手順のため、表示や項目名は多少変わる場合があります)。

Linuxサーバーへのインストール

Ubuntu・Debian・CentOSなど、すべてのLinuxディストリビューションで以下のコマンドが使えます。

# 公式スクリプトで最新版をインストール(推奨)
curl https://rclone.org/install.sh | sudo bash

# インストール確認
rclone version

パッケージマネージャーでのインストール

# Ubuntu/Debian
sudo apt update
sudo apt install rclone

# CentOS/RHEL
sudo yum install rclone

# Fedora
sudo dnf install rclone

Windowsサーバーへのインストール

コマンドプロンプトでrclone versionを実行して確認

rclone公式ダウンロードページからWindows版をダウンロード

ZIPファイルを展開し、C:\rclone\に配置

環境変数PATHにC:\rcloneを追加

設定手順

# rclone設定開始
rclone config

セキュリティ注意rclone.conf には認証トークンが保存されます。作業ユーザー以外に読まれないよう、作成後に権限を必ず絞ってください。

# 設定ファイルの場所を表示
rclone config file

# 権限を最小化(所有者のみ読み書き)
chmod 600 ~/.config/rclone/rclone.conf

ここから先は、Google Drive・OneDriveなど各クラウドに合わせてリモート設定を作成します。なお、サーバーがGUIなし(ヘッドレス)の場合は、後述の「ヘッドレス認証」を使うとスムーズです。


Google Driveとの連携設定

Google Driveは無料枠があり、個人利用のバックアップに向いています。rcloneでGoogle Driveを使うには、リモートタイプで「drive」を選び、OAuth認証を行います。共有ドライブ(Shared Drive)を使う場合は、rcloneの設定項目で共有ドライブ指定を行います。

設定手順

rclone config
n  # New remote
name> gdrive
Storage> drive

ヘッドレスサーバー(GUI無し)での認証方法

VPSはブラウザが使えないことが多いので、表示されたURLをローカルPCで開き、認証コードをVPS側に貼り付ける方式を使います。認証が成功するとトークンが保存され、以後は自動で利用できます。

接続テスト

# Google Driveのルート一覧
rclone lsd gdrive:

# バックアップ用フォルダを作成
rclone mkdir gdrive:MinecraftBackups

# テストファイルをアップロード
echo test > /tmp/test.txt
rclone copy /tmp/test.txt gdrive:MinecraftBackups

OneDriveとの連携設定

OneDriveも無料枠があり、Google Driveと併用すると合計容量を増やせます。設定手順はGoogle Driveと似ており、リモートタイプで「onedrive」を選んで認証します。

設定手順

rclone config
n  # New remote
name> onedrive
Storage> onedrive

ヘッドレスサーバーでの認証

OneDriveもヘッドレス環境では同様に、表示URLをローカルで開いて認証コードを貼り付けます。ビジネスアカウント(Microsoft 365)を使う場合は、認証先が異なるため表示される選択肢に従って進めてください。

接続テスト

# OneDriveのルート一覧
rclone lsd onedrive:

# バックアップ用フォルダを作成
rclone mkdir onedrive:MinecraftBackups

自動バックアップスクリプトの作成

ここからが本題です。世界データの圧縮、クラウドアップロード、古いバックアップの削除まで自動化します。

基本バックアップスクリプト

補足:本スクリプトは screen セッション名が minecraft の場合に save-all / save-off / save-on を送っています。systemd で起動している場合は、screen -S ... 部分を rcon(RCONを有効化している場合)や、起動方式に合わせた送信方法に置き換えてください(「バックアップ時に整合性の取れた保存を取る」ことが目的です)。

#!/bin/bash
# minecraft_backup.sh

# 設定
MINECRAFT_DIR="/opt/minecraft"  # マイクラサーバーのディレクトリ
BACKUP_DIR="/backup/minecraft"  # ローカルバックアップ保存先
RCLONE_REMOTE="gdrive:MinecraftBackups"  # rcloneリモート先
WORLD_NAME="world"  # ワールド名
BACKUP_KEEP_DAYS=7  # ローカル保管日数
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="minecraft_backup_${DATE}.tar.gz"

# ログファイル
LOG_FILE="/var/log/minecraft_backup.log"

# ログ出力関数
log() {
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE"
}

log "バックアップ開始"

# バックアップディレクトリの作成
mkdir -p "$BACKUP_DIR"

# マイクラサーバーに自動保存とセーブオフを送信(screenセッションの場合)
if screen -list | grep -q "minecraft"; then
    log "サーバーに save-all コマンド送信"
    screen -S minecraft -p 0 -X stuff "save-all$(printf \\r)"
    sleep 10
    screen -S minecraft -p 0 -X stuff "save-off$(printf \\r)"
    sleep 5
fi

# ワールドデータを圧縮
log "ワールドデータを圧縮中: $BACKUP_FILE"
cd "$MINECRAFT_DIR" || exit 1
tar -czf "$BACKUP_DIR/$BACKUP_FILE" \
    "$WORLD_NAME" \
    "$WORLD_NAME"_nether \
    "$WORLD_NAME"_the_end \
    server.properties \
    ops.json \
    whitelist.json \
    banned-players.json 2>&1 | tee -a "$LOG_FILE"

# サーバーの自動保存を再開
if screen -list | grep -q "minecraft"; then
    screen -S minecraft -p 0 -X stuff "save-on$(printf \\r)"
    log "save-on コマンド送信完了"
fi

# バックアップファイルのサイズを確認
BACKUP_SIZE=$(du -h "$BACKUP_DIR/$BACKUP_FILE" | cut -f1)
log "バックアップファイルサイズ: $BACKUP_SIZE"

# rcloneでクラウドにアップロード
log "クラウドストレージへアップロード開始"
rclone copy "$BACKUP_DIR/$BACKUP_FILE" "$RCLONE_REMOTE" \
    --progress \
    --transfers 4 \
    --checkers 8 \
    --log-file="$LOG_FILE" \
    --log-level INFO

if [ $? -eq 0 ]; then
    log "クラウドアップロード完了"
else
    log "ERROR: クラウドアップロード失敗"
    exit 1
fi

# ローカルの古いバックアップを削除
log "古いローカルバックアップを削除中(${BACKUP_KEEP_DAYS}日以上前)"
find "$BACKUP_DIR" -name "minecraft_backup_*.tar.gz" -mtime +$BACKUP_KEEP_DAYS -delete

# クラウドの古いバックアップを削除
log "古いクラウドバックアップを削除中"
rclone delete "$RCLONE_REMOTE" --min-age "${BACKUP_KEEP_DAYS}d" --log-file="$LOG_FILE"

log "バックアップ処理完了"

スクリプトの配置と実行権限付与

# スクリプトを保存
sudo nano /usr/local/bin/minecraft_backup.sh
# 上記のスクリプトを貼り付け、Ctrl+O で保存、Ctrl+X で終了

# 実行権限を付与
sudo chmod +x /usr/local/bin/minecraft_backup.sh

# 手動実行テスト
sudo /usr/local/bin/minecraft_backup.sh

高度な設定オプション

バックアップ時の負荷をさらに下げたい場合:圧縮(tar)がCPUを使うため、同居しているプラグインや他プロセスに影響することがあります。niceionice を付けると、バックアップ処理を「低優先度」で実行できます。

# 低優先度でスクリプト実行(CPU/IO優先度を下げる)
sudo nice -n 10 ionice -c2 -n7 /usr/local/bin/minecraft_backup.sh

クラウド上でも暗号化して保管したい場合:共有ドライブや第三者がアクセス可能な環境では、rclone crypt(暗号化リモート)を使うと、クラウド側に暗号化した状態で保存できます(バックアップの機密性を高めたい方向け)。

# 例:既存のgdrive:の下に暗号化リモートを作る(対話形式)
rclone config

# 以降、cryptリモート(例:gdrivecrypt:)へアップロードする運用も可能
# rclone copy "$BACKUP_DIR/$BACKUP_FILE" gdrivecrypt:MinecraftBackups

帯域制限を設定する場合

# 1MB/秒に制限
rclone copy "$BACKUP_DIR/$BACKUP_FILE" "$RCLONE_REMOTE" --bwlimit 1M

複数のクラウドストレージに同時バックアップ

# Google DriveとOneDriveの両方にアップロード
rclone copy "$BACKUP_DIR/$BACKUP_FILE" gdrive:MinecraftBackups &
rclone copy "$BACKUP_DIR/$BACKUP_FILE" onedrive:MinecraftBackups &
wait

cronによる定期実行設定

cronを使って、深夜の低負荷時間帯に自動バックアップを実行します。

cronは「最小環境」で実行される点に注意してください。PATHが通っていない・HOMEが違う・権限が足りない、などで失敗しやすいので、絶対パスを使い、標準出力/標準エラーをログに残すのが基本です。

# 例:ログへ追記しつつ実行(失敗時に原因を追える)
0 3 * * * /usr/local/bin/minecraft_backup.sh >> /var/log/minecraft_backup.cron.log 2>&1

参考(日本語動画):cron/crontabの概念が初めてなら、設定形式(分・時・日・月・曜日)やログ確認の流れを動画で押さえるとミスが減ります。

crontabの設定

# crontabを編集
crontab -e

# 毎日3時に実行(例)
0 3 * * * /usr/local/bin/minecraft_backup.sh

cron設定の構文

分 時 日 月 曜日 コマンド
0-59 0-23 1-31 1-12 0-7 (0と7は日曜日)

例:
0 3 * * *     毎日3時
*/2 * * * *   2分ごと
0 */4 * * *   4時間ごと
0 0 * * 0     毎週日曜日の0時

cron実行確認

# cronサービスの状態確認
sudo systemctl status cron

# ログを確認
tail -f /var/log/minecraft_backup.log

バックアップの検証と復元方法

バックアップが正常に機能しているか定期的に検証し、いざという時の復元手順を確認します。

バックアップファイルの検証

さらに確実にするなら:ダウンロードして展開できることの確認に加え、rclone check でローカルとクラウドの差分(破損/欠落)がないかを機械的にチェックできます。

# ローカルとクラウドの整合性チェック(同名ファイルのハッシュ比較)
rclone check /backup/minecraft gdrive:MinecraftBackups
# クラウド上のバックアップ一覧を確認
rclone ls gdrive:MinecraftBackups

# 最新バックアップをダウンロード
rclone copy gdrive:MinecraftBackups/minecraft_backup_YYYYMMDD_HHMMSS.tar.gz /tmp/

# 圧縮ファイルの整合性チェック
tar -tzf /tmp/minecraft_backup_YYYYMMDD_HHMMSS.tar.gz

# 解凍テスト
cd /tmp
tar -xzf minecraft_backup_YYYYMMDD_HHMMSS.tar.gz
ls -la world/

サーバーデータの復元手順

完全復元(サーバー全体を戻す場合)

# 1. サーバーを停止
screen -S minecraft -X quit

# 2. 現在のデータをバックアップ(念のため)
mv /opt/minecraft /opt/minecraft_old_$(date +%Y%m%d)

# 3. バックアップを展開
mkdir -p /opt/minecraft
tar -xzf /tmp/minecraft_backup_YYYYMMDD_HHMMSS.tar.gz -C /opt/minecraft

# 4. サーバー起動(例)
cd /opt/minecraft
./start.sh

容量削減と最適化テクニック

無料枠や低コスト運用では、容量削減が大きな効果を発揮します。ここでは、圧縮・除外・差分同期・世代管理の4つを中心に解説します。

圧縮レベルの最適化

gzip(tar.gz)はバランスが良いですが、より高圧縮にしたい場合はxz(tar.xz)も選択肢です。CPU負荷は上がるため、夜間・低負荷時間帯での実行推奨です。

# xzで圧縮(高圧縮だがCPU負荷は高め)
tar -cJf minecraft_backup_$(date +%Y%m%d_%H%M%S).tar.xz world/

不要ファイルの除外

プラグインが生成するキャッシュや一時ファイルは、復元に必須でないことがあります。バックアップ対象を絞ることで容量と転送時間を削減できます(ただし「復元に必要なもの」を誤って除外しないよう注意)。

rclone差分同期の活用

tar.gzで「世代ファイル」を作る方式は分かりやすい一方、毎回フル転送になります。運用に慣れてきたら、圧縮をやめてディレクトリ単位でrclone sync(差分)する方式も検討できます(ただし誤同期リスクがあるため、まずはcopy/世代ファイル方式が安全です)。

# ローカルのバックアップディレクトリをクラウドへ差分同期
rclone sync /backup/minecraft gdrive:MinecraftBackups

古いバックアップの自動削除

容量枯渇の最大原因は「世代が増え続けること」です。ローカルとクラウドの両方で、一定日数より古いバックアップを自動削除するのが基本です。

# 30日以上前のファイルを削除
rclone delete gdrive:MinecraftBackups --min-age 30d

トラブルシューティング

自動化では「動いているつもりで動いていない」状態が一番危険です。ログを必ず残し、失敗時は原因を切り分けて再発防止までセットで行いましょう。

Q1. rclone設定中に「Failed to configure token」エラーが出る

ヘッドレス環境での認証コード貼り付けミス、時刻ずれ(NTP未同期)、ブラウザ側で別アカウントを認証している、などが原因になりがちです。VPSの時刻同期(systemd-timesyncd等)も確認してください。

Q2. バックアップ中にサーバーが重くなる

圧縮処理とディスクI/Oが主因です。夜間に実行する、nice/ioniceで優先度を下げる、バックアップ対象を絞る、圧縮方式を見直す(xz→gzip)などで緩和できます。

Q3. クラウドアップロードが途中で止まる

回線品質やプロバイダー側の一時的制限が原因です。–transfersを下げる、–retries(再試行)を増やす、時間帯を変えるなどを試してください。ログレベルをDEBUGに上げて原因特定するのも有効です。

Q4. 「rate limit exceeded」エラーが出る

クラウド側のクォータ/制限に当たっている可能性があります。転送数(–transfers)を下げる、実行頻度を落とす、複数クラウドに分散する、などを検討してください。

Q5. バックアップファイルが破損している

転送途中の切断やディスク障害が疑われます。tar -tzfで内容確認、rclone checkで整合性確認、ローカル側のS.M.A.R.T.確認(NVMe/SSD/HDD)なども実施してください。


サーバー診断で最適なVPSを見つけよう

マイクラサーバーはメモリ使用量とディスク性能の影響が大きく、バックアップも含めて安定運用するなら「CPU」「メモリ」「NVMe」「転送量」のバランスが重要です。サーバー診断で最適なVPSを見つけましょう。

目次