CentOS 6.9下如何导出CSGO服务器Screen会话内容?
如何导出CentOS 6.9上CSGO服务器的Screen会话内容
当然可以导出你的CSGO服务器Screen会话内容!在CentOS 6.9环境下,有几个实用的方案,我给你详细拆解一下:
方法1:实时记录已运行的Screen会话
如果你的CSGO服务器Screen会话已经在运行,现在想开始记录所有输出内容,可以按以下步骤操作:
- 先重新连接到目标Screen会话(把
${port}换成你实际使用的端口号):screen -r Server${port} - 按下
Ctrl+a组合键(先按住Ctrl再按a,然后松开),接着按冒号:,此时Screen的命令行提示符会出现在会话底部 - 输入
log on并回车,Screen就会在CSGO服务器的工作目录下生成一个名为screenlog.0的文件,实时记录会话里的所有控制台输出 - 要是你想自定义日志文件名,先输入
logfile /home/${username}/csgo-server-${port}.log(替换成你想要的路径和文件名),回车后再输入log on即可
如果以后启动Screen时就想自动开启日志,可以修改你的启动命令,加上-L参数:
runuser -l '.$username .' -c "cd /home/'.$username .'/'. $username .'-'. $port .'/ && screen -L -A -m -d -S Server'. $port .' ./srcds_run srcds -game csgo -console -usercon '. $gamemodeline . ' +mapgroup mg_bomb +map '. $defmap . ' -maxplayers_override '. $max . ' +ip '. $host_ip . ' +port '. $port . ' -tickrate '. $tickrate . ' '. $cvars ."`
添加-L后,Screen会自动生成screenlog.0并开始记录所有会话内容。
方法2:快速导出当前Screen屏幕的内容
如果只是想抓取当前会话屏幕上显示的内容,不需要持续记录,可以:
- 连接到目标会话后,按下
Ctrl+a然后按h,Screen会把当前屏幕的所有内容保存到一个名为hardcopy的文件中,这个文件同样位于CSGO服务器的工作目录下。
方法3:使用CSGO服务器自带的日志功能(更推荐)
其实CSGO本身就支持生成专门的服务器日志,这个日志只包含游戏相关的输出(比如玩家连接、游戏事件、控制台命令等),比Screen日志更干净精准。你可以修改启动参数,添加日志相关的选项:
runuser -l '.$username .' -c "cd /home/'.$username .'/'. $username .'-'. $port .'/ && screen -A -m -d -S Server'. $port .' ./srcds_run srcds -game csgo -console -usercon '. $gamemodeline . ' +mapgroup mg_bomb +map '. $defmap . ' -maxplayers_override '. $max . ' +ip '. $host_ip . ' +port '. $port . ' -tickrate '. $tickrate . ' +log on +logfile logs/server_'. $port .'.log '. $cvars ."`
添加+log on +logfile logs/server_${port}.log后,CSGO会在服务器目录的logs文件夹下生成对应端口的日志文件,后续你直接查看或导出这个文件即可。
内容的提问来源于stack exchange,提问作者anar chiff
相关产品推荐
相关产品推荐

