141 lines
4.2 KiB
Bash
Executable file
141 lines
4.2 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/dayz/database:/home/dayz/Dayz:/root/bin
|
|
#
|
|
# Script Bash json to sql for Dayz Server Stat
|
|
# Version : 0.1
|
|
|
|
##remise a zero ID :
|
|
# ALTER TABLE StatServer AUTO_INCREMENT=0
|
|
# DELETE FROM `StatServer`;
|
|
# TRUNCATE TABLE StatServer
|
|
#
|
|
|
|
# need to create the directory if dosen't exist an error will appear.
|
|
pathd="/home/dayz/git-DayZ-server-stat"
|
|
# create directory
|
|
varMod="server1"
|
|
|
|
# Game Port IP mod
|
|
IpGame="103.58.149.102"
|
|
PortGame="2302"
|
|
QueryGame="27016"
|
|
|
|
|
|
TABLE="StatServer_1"
|
|
DB_USER=""
|
|
DB_PASSWD=""
|
|
DB_NAME=""
|
|
DB_SERV=""
|
|
|
|
CHECKstatserver="/tmp/CHECKstatserver_${varMod}.json"
|
|
statserver="${pathd}/${varMod}/statserver.json"
|
|
gameqjson="${pathd}/${varMod}/gameqjson.json"
|
|
|
|
####### don't touch below #####
|
|
# (will change in future update)
|
|
# pathBin="/dayz/bin"
|
|
pathDBe="${pathd}/${varMod}"
|
|
|
|
# NEED to SET date
|
|
# SQL
|
|
datesql=$(date +'%F %T')
|
|
date=$(date +'%F %T')
|
|
|
|
|
|
#DEBUG:
|
|
# ls ${statserver}
|
|
########################
|
|
|
|
if [ -d ${pathd}/${varMod} ]
|
|
then
|
|
echo " ✅ Directory ${pathd}/${varMod} ok"
|
|
else
|
|
mkdir -p ${pathd}/${varMod}
|
|
echo " ✅ Directory ${pathd}/${varMod} CREATED ✅"
|
|
fi
|
|
|
|
|
|
if [ ! -r "$statserver" ]; then
|
|
echo " ⛔Error:"${statserver}" doesn't exits"
|
|
# exit 1
|
|
fi
|
|
|
|
|
|
|
|
nmapGame=`/usr/local/bin/gamedig --type dayz $IpGame:$QueryGame > ${CHECKstatserver}`
|
|
catCHECKstatserver=`cat ${CHECKstatserver}`
|
|
if [[ "$catCHECKstatserver" == *error* ]]
|
|
then
|
|
echo -e " ✅ Game is Down | port $PortGame closed! ⛔ "
|
|
insert_mysql_down && echo -e " ✅ Mysql Updated " || echo -e "\n !!!!!!!!!!!!! Huston , MYSQL issue ⛔"
|
|
# echo -e "\n Mysql updated"
|
|
exit 1
|
|
else
|
|
echo -e " ✅ Game is UP | port $PortGame OPEN ✅ !\n"
|
|
cp ${CHECKstatserver} ${statserver}
|
|
|
|
|
|
########################## not use
|
|
|
|
insert_mysql_down() {
|
|
numplayers="0"
|
|
players="0"
|
|
ping="0"
|
|
mysql --host=$DB_SERV --user=$DB_USER --password=$DB_PASSWD --database=$DB_NAME << EOF
|
|
SET NAMES utf8;
|
|
insert into $TABLE (\`date\`,\`name\`,\`game\`,\`map\`,\`version\`,\`requiredVersion\`,\`numplayers\`,\`players\`,\`maxplayers\`,\`ping\`,\`timeserver\`,\`hive\`,\`battleye\`,\`connect\`,\`secure\`) VALUES ("$datesql","OFFLINE","$game","$map","$version","$requiredVersion","$numplayers","$players","$maxplayers","$ping","$timeserver","$hive","$battleye","$connect","$secure");
|
|
|
|
EOF
|
|
}
|
|
|
|
|
|
varcat=$(cat $statserver)
|
|
|
|
name=$(echo $varcat | jq -r '.name')
|
|
map=$(echo $varcat | jq -r '.map')
|
|
password=$(echo $varcat | jq -r '.password')
|
|
game=$(echo $varcat | jq -r '.raw.game')
|
|
numplayers=$(echo $varcat | jq -r '.raw.numplayers')
|
|
version=$(echo $varcat | jq -r '.raw.version')
|
|
maxplayers=$(echo $varcat | jq -r '.maxplayers')
|
|
ping=$(echo $varcat | jq -r '.ping')
|
|
connect=$(echo $varcat | jq -r '.connect')
|
|
secure=$(echo $varcat | jq -r '.raw.secure')
|
|
requiredVersion=$(echo $varcat | jq -r '.raw.rules.requiredVersion')
|
|
island=$(echo $varcat | jq -r '.raw.rules.island')
|
|
#players=$(echo $varcat | jq -r '.players[]')
|
|
#players="on"
|
|
#gq_players=$(echo `cat ${gameqjson}` | jq -r 'gq_players')
|
|
mod=$(echo $varcat | jq -r '.raw.tags[63:66]')
|
|
hive=$(echo $varcat | jq -r '.raw.tags[18:26]')
|
|
battleye=$(echo $varcat | jq -r '.raw.tags[:8]')
|
|
timeserver=$(echo $varcat | jq -r '.raw.tags[68:]')
|
|
speedtime=$(echo $varcat | jq -r '.raw.tags[41:42]')
|
|
speedtimenight=$(echo $varcat | jq -r '.raw.tags[54:55]')
|
|
timeLeft=$(echo $varcat | jq -r '.raw.rules.timeLeft')
|
|
secure=$(echo $varcat | jq -r '.raw.secure')
|
|
serverstatus="UP"
|
|
#timeserver="00:00"
|
|
###############
|
|
# check
|
|
|
|
echo " [✔] Server UP =>> update mysql"
|
|
echo " Debug: $numplayers"
|
|
|
|
insert_mysql() {
|
|
mysql --host=$DB_SERV --user=$DB_USER --password=$DB_PASSWD --database=$DB_NAME << EOF
|
|
SET NAMES utf8;
|
|
insert into $TABLE (\`date\`,\`name\`,\`game\`,\`map\`,\`version\`,\`requiredVersion\`,\`numplayers\`,\`players\`,\`maxplayers\`,\`ping\`,\`timeserver\`,\`hive\`,\`battleye\`,\`connect\`,\`secure\`) VALUES ("$datesql","$name","$game","$map","$version","$requiredVersion","$numplayers","$players","$maxplayers","$ping","$timeserver","$hive","$battleye","$connect","$secure");
|
|
|
|
EOF
|
|
}
|
|
|
|
insert_mysql && echo -e "\n ✅ Updated Mysql " || echo -e "\n Huston ,up MYSQL issue"
|
|
|
|
fi
|
|
|
|
echo -e "\nCheck Date SQL format:"
|
|
echo $date
|
|
|
|
exit 1
|