Files
Linux_Docker_build_DayzServer/DockerFile/updatemod.sh

58 lines
1.9 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# DayZ Mod更新脚本
# 使用方法: docker compose run --rm steamcmd updatemod
# 或通过crontab自动运行每15分钟
set -e
# 设置日志文件路径
LOG_FILE="/var/log/updatemod.log"
echo "==========================================" >> "$LOG_FILE"
echo "开始更新DayZ Mod..." >> "$LOG_FILE"
echo "时间: $(date)" >> "$LOG_FILE"
echo "==========================================" >> "$LOG_FILE"
# 检查环境变量
if [ -z "$STEAM_USERNAME" ] || [ -z "$STEAM_PASSWORD" ]; then
echo "错误: 请设置 STEAM_USERNAME 和 STEAM_PASSWORD 环境变量" >> "$LOG_FILE"
exit 1
fi
# 切换到SteamCMD目录
cd /opt/steamcmd
# 检查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
# 更新Mod如果有配置的话
if [ -n "$MOD_IDS" ]; then
echo "开始更新Mod..." >> "$LOG_FILE"
IFS=',' read -ra MOD_ARRAY <<< "$MOD_IDS"
for mod_id in "${MOD_ARRAY[@]}"; do
echo "更新Mod ID: $mod_id" >> "$LOG_FILE"
./steamcmd.sh +login $STEAM_USERNAME $STEAM_PASSWORD +workshop_download_item 221100 $mod_id +quit
if [ $? -eq 0 ]; then
echo "Mod $mod_id 更新完成" >> "$LOG_FILE"
else
echo "Mod $mod_id 更新失败" >> "$LOG_FILE"
fi
done
else
echo "未配置Mod ID跳过Mod更新" >> "$LOG_FILE"
fi
echo "==========================================" >> "$LOG_FILE"
echo "Mod更新完成" >> "$LOG_FILE"
echo "时间: $(date)" >> "$LOG_FILE"
echo "==========================================" >> "$LOG_FILE"