地图更新工具
GOKZ.TOP 为服务器运营者提供地图更新工具。它会比较已验证地图目录与服务器上的 BSP 文件,仅下载缺失或已有更新的地图,并刷新 maplist.txt 和 mapcycle.txt。
环境要求
- 安装了
curl、Python 3 和flock的 Linux 系统 - 对服务器
csgo/maps目录的写入权限 - 可选:安装
7z或7zz,以加快较大规模的首次安装
请始终使用拥有并运行游戏服务器的 Linux 用户执行这些命令。
测试手动更新
进入服务器的 csgo/ 目录(不是 csgo/maps/)并运行:
curl -fsSL https://gokz.top/install/maps.sh | sh
按提示确认检测到的目录,并在设置定时任务前确认更新已成功完成。
设置每小时更新
打开游戏服务器用户的 crontab:
crontab -e
添加以下一行:
0 * * * * /usr/bin/flock -n "$HOME/.gokz-map-update.lock" /bin/sh -c 'export GOKZ_MAPS_YES=1; /usr/bin/curl -fsSL https://gokz.top/install/maps.sh | /bin/sh' >> "$HOME/map-update.log" 2>&1
任务会在每个整点检查一次,因此新验证的地图最多可能需要一小时才会下载。锁文件可避免任务重叠运行,同时更新工具已启用无人值守确认。
位于 $HOME/serverfiles/csgo 的标准 LinuxGSM 安装会被自动检测。
使用自定义服务器路径
如果 csgo 目录位于其他位置,请在 export 前添加明确的 cd:
0 * * * * /usr/bin/flock -n "$HOME/.gokz-map-update.lock" /bin/sh -c 'cd /path/to/serverfiles/csgo || exit 1; export GOKZ_MAPS_YES=1; /usr/bin/curl -fsSL https://gokz.top/install/maps.sh | /bin/sh' >> "$HOME/map-update.log" 2>&1
请将 /path/to/serverfiles/csgo 替换为服务器 csgo/ 目录的绝对路径。
查看日志或移除定时任务
使用以下命令查看最近的输出:
tail -n 100 "$HOME/map-update.log"
如需停止自动更新,请运行 crontab -e,删除 GOKZ 地图更新任务所在行,然后保存文件。锁文件和日志文件可以安全保留;它们本身不会执行任何任务。