以前、Minecraft(マイクラ)統合版(BE)サーバーを自動アップデートする方法を紹介したが、この度OSをUbuntu(Linux)に変更してBedrock Serverを移行したので、新たに自動アップデート用のシェルスクリプトを作成しました。
基本的な処理は同じだが、やはり、前回同様にBedrock ServerのダウンロードURLの検出方法を解決するのに悩みました。
Windows版の自動アップデートスクリプトはこちら!
統合版マイクラの自動アップデート
動作内容は以前の自動アップデートスクリプトと大差ありませんので割愛させていただき、とりあえず中身をペタっと貼っちゃいます。
#!/bin/bash
##
## Automated Minecraft Bedrock Server Updater for Linux
## Created by Minory, Jun 30, 2021
### The directory holding your Bedrock server files
cd /mnt/nas/bedrock-server# Randomizer for user agent
RandNum=$(echo $((1 + $RANDOM % 5000)))URL=`curl -H "Accept-Encoding: identity" -H "Accept-Language: en" -L -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.33 (KHTML, like Gecko) Chrome/90.0.$RandNum.212 Safari/537.33" 2>/dev/null | grep bin-linux | sed -e 's/.*<a href=\"\(https:.*\/bin-linux\/.*\.zip\).*/\1/'`# Verify if the DOWNLOAD and SERVER destinations exist. Create if it doesn't
if [ -f ./${URL##*/} ]; then
exit 1
else
# Process kill
pkill bedrock_server # Backup files
cp ./server.properties ./backup/server.properties
cp ./permissions.json ./backup/permissions.json
cp ./whitelist.json ./backup/whitelist.json # Get new bedrock server from web site
wget -q ${URL}
unzip -o ${URL##*/} 2>&1 > /dev/null # Return files
cp ./backup/server.properties ./server.properties
cp ./backup/permissions.json ./permissions.json
cp ./backup/whitelist.json .whitelist.json # Start process
./bedrock_server
fiexit 0
もちろん今回もGitHubで公開していますので、自由にお使いください!
参考サイトとの違いについて
ちなみに、こちらのシェルスクリプトも参考にしたサイトはありますが、READMEの使い方に書いてある通リ、保存場所をある程度決め打ちすることで、もっと処理をシンプルに作成しています。
参考サイトはこちら!
冒頭でも記述しましたが、少し悩んだのはcurl
コマンドの部分ですね!
ヘッダをしっかり付けてあげないと、「Access Denied」って怒られちゃいます。。
cronでの定期実行について
最後に、この自動アップデートスクリプトをcronに登録して、定期的に実行してあげましょう。
使い方にはcron
の設定例までは書いてなかったので、参考までご紹介します。
# vi /etc/crontab
・・・
30 * * * * root /mnt/nas/bedrock-server/bedrock_update.sh
上記の設定で毎時30分に実行することができます。
実行頻度は自身の環境に応じて調整してください。
あまりやり過ぎると他の方に迷惑がかかるので、ある程度お控えください。
- Original:https://minory.org/bedrock-server-auto-update-linux.html
- Source:Minory
- Author:管理者
Amazonベストセラー
Now loading...