本站文章总数为:165
Search Posts

检测后端开服时间变更脚本

内容纲要

工作所写脚本记录备忘
用到的知识点shell jq json解析 data 时间日期时间戳的互相转换

#/bin/bash
((kserid=SERVER_ID+30000))
starttime=$(curl http://openapi:4050/gameServer/Serializable|jq '.[] | select (.server == "'${kserid}'") | .startTime'|sed 's#"##g')
if [[ -n $starttime ]];then
#毫秒时间戳除以1000转为秒时间戳
starttime=$(($starttime/1000))
echo $starttime
#时间戳转为2023/10/13 这种日期格式,变量+@
stime=$(date -d "@$starttime" +%Y/%m/%d)
echo $stime

#获取服务端当前开服时间
optime=$(grep "server.open.time" /gldata1/server/lv2/game_server.conf|awk -F "=" '{print $2}')
echo "当前开服时间为"$optime
#日期格式转时间戳不用@
optimestamp=$(date -d "$optime" +%s)
echo  "当前开服时间戳为"$optimestamp
#对比时间字符串是否相等 不一致修改配置文件重新启动
    if [ $stime != $optime   ];then
        sed -i 's#server.open.time=.*#server.open.time='"$stime"'#g' /gldata1/server/lv2/game_server.conf
        sh /gldata1/server/lv2/game_server check
        sh /gldata1/server/lv2/game_server stop
        sh /gldata1/server/lv2/game_server srvWorld0
        echo "开服时间已修改为"$stime
    else
       echo "时间一致无需修改"
    fi

fi

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注