標準愚痴出力

個人的なIT作業ログです。もしかしたら一般的に参考になることが書いているかもしれません(弱気

Java版マインクラフトのデータを OneDrive へバックアップしよう

次のようなバッチファイルを OneDrive のフォルダーにおいて、実行する。 tar と Zstandard (Facebook の開発した圧縮プログラム)を使う

minecraft.cmd

move "%APPDATA%\.minecraft\screenshots\*.png" "%USERPROFILE%\OneDrive\画像\dotminecraft\."
tar -C "%APPDATA%" --exclude ".minecraft/backups/*.zip" -cvf - .minecraft | zstd > dotminecraft-%DATE:/=%.tar.zst

マインクラフトでは F2 キーで簡単にスクショが撮れる。が、このデータはずっとたまり続けてしまうので、バックアップ時に負荷になる。でも、ちゃんと残しておきたい。そこで画像ファイルだけは、OneDrive の別の画像フォルダーに逃しっぱなしにする。

また、.minecraft/backups には、マインクラフト自身がバージョンアップ前に取得するバックアップZIPがある。これが結構なサイズになるので、tar の --exclude オプションで排除しておく。

だが、exclude でちゃんと目的のファイルだけ除外されたのだろうか。zip という拡張子が指定されているので、関係ないファイルまで除外されていないだろうな。心配になったので、ドライランさせてログで比較だ。

tar -C "%APPDATA%" --exclude ".minecraft/backups/*.zip" -cvf - .minecraft >nul 2>exclude-test.log
tar -C "%APPDATA%" -cvf - .minecraft >nul 2>no-exclude-test.log
vim -d exclude-test.log no-exclude-test.log

OK だった!