58 lines
1.9 KiB
Bash
58 lines
1.9 KiB
Bash
#!/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" |