はじめに
Conoha for Gamesで7daysToDieのマルチサーバを立てて遊んでいるのですが、SAVEデータをバックアップ取っていないことに不安を覚えたのでその対応をした備忘録です。
やったこと
0. 要件
- 1日1回AM9時にSAVEデータをバックアップすること
- バックアップファイルは10世代残して削除すること
1. バックアップスクリプトの作成
まず、バックアップ処理を行うスクリプトを作成します。
以下のスクリプトを/opt/backup_script.sh
というファイルに保存します。
#!/bin/bash
# バックアップの保存先ディレクトリ
BACKUP_DIR="/opt/backup"
# アーカイブするディレクトリ
SOURCE_DIR="/home/sdtd/.local/share/7DaysToDie/Saves/"
# 現在の日付を取得
DATE=$(date +"%Y%m%d")
# アーカイブのファイル名
ARCHIVE_NAME="backup_$DATE.tar.gz"
# アーカイブの作成
tar -czf $BACKUP_DIR/$ARCHIVE_NAME -C $SOURCE_DIR .
# 最大10世代分のアーカイブを残し、それ以上古いものを削除
cd $BACKUP_DIR
ls -t | grep 'backup_.*\.tar\.gz' | sed -e '1,10d' | xargs -d '\n' rm -f
2. スクリプトの実行権限を付与
スクリプトに実行権限を付与します。
sudo chmod +x /opt/backup_script.sh
3. cronジョブの設定
次に、毎日AM9時にこのスクリプトが実行されるようにcronジョブを設定します。
sudo crontab -e
以下の行を追加して保存します。
0 9 * * * /opt/backup_script.sh
4. 設定の確認
設定が正しく行われたかを確認するため、次のコマンドでcronジョブが設定されているか確認します。
sudo crontab -l
以上で、毎日AM9時に指定されたディレクトリのバックアップが/opt/backup
に作成され、10世代分のアーカイブが保持されるようになります。
最後に
バックアップとってない!と思い立ってChatGPT先生に全て作ってもらったのでリアル5分で完了しました。時代ですね。ありがたい。(この記事もほとんどChatGPTのアウトプットを張り付けただけです)