以前Windowsでファイル履歴を使った差分バックアップの仕組みについて紹介しました。
マイクラサーバーをWindowsで動かしてみたり、Ubuntu Serverで動かしてみたりと、いろいろやっているのですが、Linux(Ubuntu Server)でも同じようにワールドデータの差分バックアップを取りたい!と思ったのでチャレンジしてみました。
もちろん、今回もビジネスにそのまま応用が利きますので、覚えておいて損はないと思います。


バックアップ先フォルダの確保
今回は冗長性の確保を不要と考え、NASに内蔵されているRAID領域ではなく外付けHDDの中にフォルダを作りました。フォルダ名は「MinecraftSnapshot」としました。

UM480XTのゲストOSであるUbuntu Serverを使用しました。
構築した時の記事は以下の通りです。

バックアップ先フォルダをUbuntu Serverでマウント
マウント先ディレクトリを作成します。
sudo mkdir /mnt/MinecraftSnapshot

再起動してもマウントされっぱなしにしたいので、fstabに定義していきます。
sudo vi /etc/fstab

末尾に下記内容で記載します。
//<NASのIPアドレス>/<保存先ディレクトリパス> /mnt/MinecraftSnapshot cifs _netdev,credentials=/root/.credfile,dir_mode=0755,file_mode=0755,uid=500,gid=500 0 0

fstabにパスワードを書くことはセキュリティ上好ましくないので、/root/.credfileで定義する記述になっています。
/root/.credfileを作成してNASにアクセスするユーザー情報を記述します。

username=<NASにアクセスするユーザー名>
password=<パスワード>
保存できたら再起動してマウントするか確かめます。
sudo shutdown -r now
再起動後
ls -la /mnt/MinecraftSnapshot

fstabに直接書くことは推奨されません。面倒ですがじっくりやれば難しくはないはずです。そして私は.credfileの内容をタイポしてて一度ハマりました…
rsnapshotのインストールと設定
続いて、rsnapshotをインストールします。
sudo apt install rsnapshot


設定ファイルの編集
rsnapshotは設定ファイルによって制御します。/etc/rsnapshot.confがそのファイルで、今回は以下の通りに設定していきます。
バックアップ対象:/opt/Minecraft
バックアップ先:/mnt/MinecraftSnapshot
snapshot_root /mnt/MinecraftSnapshot
retain hourly 168
backup /opt/minecraft/ localhost/









rsnapshot.confは、コメントアウトが行の途中からできません。また、バックアップ対象フォルダの記述が間違っていると、その通りにディレクトリを作成してそこにバックアップデータを入れる動作をするので、バックアップ先(snapshot_root)のディレクトリ記述は気を付けましょう。
cronで毎時実行を設定
sudo crontab -e


末尾に以下の内容で追加します。
0 * * * * /usr/bin/rsnapshot hourly


動作確認
下記コマンドで作成した設定の通りに即時バックアップが可能です。
sudo rsnapshot hourly
バックアップ先にきちんとデータが入っているか、内容が間違っていないかを確認したほうがよいでしょう。毎時0分にcronで実行されるため、その後も確認しましょう。
総括
Windowsのファイル履歴ほど気軽ではありませんが、Linuxでも同様の動作が実現できました。全般的に、Linuxは「コンピューターを操っている感」があり、なんでもおぜん立てしてくるWindowsやMacOSとは違った魅力があります。四苦八苦しながらたどり着くのも、なかなか楽しいものです。
今回はNASに保存する方法をやってみましたが、外付けHDDに保存する方法も次回は試してみたいと思います。
コメント