调整服务器启动时,检查游戏和模组更新的逻辑

This commit is contained in:
Dcr
2025-07-25 16:04:38 +08:00
parent 34c2e6dd05
commit 7d732ba128
2 changed files with 22 additions and 15 deletions

View File

@@ -80,7 +80,7 @@ start_dayzserver() {
cd /root/Steam/steamapps/common/DayZServer
# 启动服务器之前,检查mod是否有更新.
bash /opt/updatemod.sh
bash /opt/updatemod.sh update_server
updatemodpath="/root/Steam/steamapps/workshop/content/221100"
target_dir="/root/Steam/steamapps/common/DayZServer/client_mod"
@@ -238,7 +238,7 @@ else
echo "DayZServer已安装检查更新"
# 切换到SteamCMD目录
cd /opt/steamcmd
./steamcmd.sh +login $STEAM_USERNAME $STEAM_PASSWORD +app_update 223350 validate +quit
# ./steamcmd.sh +login $STEAM_USERNAME $STEAM_PASSWORD +app_update 223350 validate +quit
echo "启动DayZServer..."
cd /root/Steam/steamapps/common/DayZServer
start_dayzserver

View File

@@ -10,10 +10,20 @@ fi
# 设置日志文件路径
LOG_FILE="/var/log/updatemod.log"
# 检查是否传入update_server参数
UPDATE_SERVER=false
if [ "$1" = "update_server" ]; then
UPDATE_SERVER=true
echo "==========================================" >> "$LOG_FILE"
echo "开始更新DayZ服务器和Mod..." >> "$LOG_FILE"
echo "时间: $(date)" >> "$LOG_FILE"
echo "==========================================" >> "$LOG_FILE"
else
echo "==========================================" >> "$LOG_FILE"
echo "开始更新DayZ Mod..." >> "$LOG_FILE"
echo "时间: $(date)" >> "$LOG_FILE"
echo "==========================================" >> "$LOG_FILE"
fi
# 检查环境变量
if [ -z "$STEAM_USERNAME" ] || [ -z "$STEAM_PASSWORD" ]; then
@@ -26,15 +36,6 @@ fi
cd /opt/steamcmd
if [ ! -f "/opt/steamcmd/steamcmd.sh" ]; then
echo "SteamCMD未安装开始下载和安装..." >> "$LOG_FILE"
wget -O /opt/steamcmd/steamcmd_linux.tar.gz ${STEAMCMD_URL}
tar xvzf /opt/steamcmd/steamcmd_linux.tar.gz -C /opt/steamcmd
rm /opt/steamcmd/steamcmd_linux.tar.gz
chmod +x /opt/steamcmd/steamcmd.sh
echo "SteamCMD安装完成" >> "$LOG_FILE"
fi
if [ -n "$MOD_IDS" ]; then
echo "开始更新Mod..." >> "$LOG_FILE"
IFS=',' read -ra MOD_ARRAY <<< "$MOD_IDS"
@@ -44,6 +45,12 @@ if [ -n "$MOD_IDS" ]; then
echo "login $STEAM_USERNAME $STEAM_PASSWORD" > "$SCRIPT_FILE"
# 如果需要更新服务器,先添加服务器更新指令
if [ "$UPDATE_SERVER" = true ]; then
echo "添加DayZ服务器更新指令 (ID: 223350)" >> "$LOG_FILE"
echo "app_update 223350 validate" >> "$SCRIPT_FILE"
fi
for mod_id in "${MOD_ARRAY[@]}"; do
echo "添加Mod ID: $mod_id 到更新脚本" >> "$LOG_FILE"
echo "workshop_download_item 221100 $mod_id validate" >> "$SCRIPT_FILE"