initial(old rep had backup files)

This commit is contained in:
Andrey Egorov
2025-08-08 19:45:10 +03:00
commit bd4d56d3af
16 changed files with 39805 additions and 0 deletions

4
.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
.git/
tmp.token
ready_params.json
backups/

10
README.md Normal file
View File

@ -0,0 +1,10 @@
you make backup
```
./req.sh login
./backup_params.sh spb-1
./stat.sh /backups/spb-1
```
# other stuff
ips
[\"192.168.0.111\", \"192.168.111.111\"]

17
backup_params.sh Executable file
View File

@ -0,0 +1,17 @@
REQ=./req.sh
BACKUP_DIR=backups
if [[ $1 == "" ]]; then
echo "no backup name presented"
exit 1
fi
mkdir -p ./$BACKUP_DIR/$1
#$REQ login
$REQ devices-serial | while read s; do
echo Making $s
$REQ device-params $s > ./$BACKUP_DIR/$1/$s.json
done
echo DONE

73
req.sh Executable file
View File

@ -0,0 +1,73 @@
#ADDR=api-fema.ekatgortrans.ru:39080
ADDR=https://api.fema.krbl.ru
#ADDR=62.217.183.88:8080
LOGIN=admin
PASSWORD=admin
#PASSWORD=ra8KvcMxS2baUxe*
#MASTER_CODE=342985
MASTER_CODE=111111
H="-H \"Authorization: Bearer $(cat tmp.token)\""
if [[ $1 == "login" ]]; then
# Login
RESP=$(curl -X POST -H "Content-Type: application/json" -d "{ \"login\": \"$LOGIN\", \"password\": \"$PASSWORD\" }" "$ADDR/auth/signin")
if [[ $(echo $RESP | jq '.message') != "\"OK\"" ]]; then
echo "Failed to login"
echo $RESP | jq '.error'
exit 1
fi
# 2FA
RESP=$(curl -X POST -H "Content-Type: application/json" "$ADDR/auth/2fa?login=$LOGIN&code=$MASTER_CODE")
if [[ $(echo $RESP | jq '.message') != "\"OK\"" ]]; then
echo "Failed to login"
echo $RESP | jq '.error'
exit 1
fi
echo "Login success!"
echo $RESP | jq ".data" | tr -d "\"" > tmp.token
elif [[ $1 == "devices" ]]; then
curl -X GET -H "Content-Type: application/json" -H "Authorization: Bearer $(cat tmp.token)" "$ADDR/data/getDevices"
elif [[ $1 == "devices-serial" ]]; then
curl -X GET -H "Content-Type: application/json" -H "Authorization: Bearer $(cat tmp.token)" "$ADDR/data/getDevices" | jq ".devices[] | .SERIAL" | tr -d "\""
elif [[ $1 == "devices-serial-with-reg" ]]; then
curl -X GET -H "Content-Type: application/json" -H "Authorization: Bearer $(cat tmp.token)" "$ADDR/data/getDevices" | jq ".devices[] | (.SERIAL) +\" -- \"+ (.REG_NUMBER)" | tr -d "\""
elif [[ $1 == "devices-status" ]]; then
curl -X GET -H "Content-Type: application/json" -H "Authorization: Bearer $(cat tmp.token)" "$ADDR/data/getDevices" | jq ".devices[] | (.SERIAL) +\" -- \"+ (.IS_CONNECTED|tostring)+\" -- \"+ (.REG_NUMBER)" | tr -d "\""
elif [[ $1 == "device-params" ]]; then
if [[ $2 == "" ]]; then
echo "No serial presented"
exit 1
fi
curl -X POST -s -H "Content-Type: application/json" -H "Authorization: Bearer $(cat tmp.token)" -d "{ \"serial\": \"$2\" }" "$ADDR/settings/deviceSettings" | jq
elif [[ $1 == "set-device-params" ]]; then
if [[ $2 == "" ]]; then
echo "No params file presenter"
exit 1
fi
SERIAL=$(cat $2 | jq ".SERIAL")
if [[ $SERIAL == "" ]]; then
echo "File does not contain serial"
exit 1
fi
echo "Settings device params for $SERIAL"
curl -X PUT -H "Content-Type: application/json" -H "Authorization: Bearer $(cat tmp.token)" "$ADDR/settings/deviceSettings" --data-binary @"$2"
elif [[ $1 == "set-ips" ]]; then
if [[ $2 == "" ]]; then
echo "No serial provided"
exit 1
fi
if [[ $3 == "" ]]; then
echo "No ips provided"
exit 1
fi
curl -X PUT -H "Content-Type: application/json" -H "Authorization: Bearer $(cat tmp.token)" -d "{ \"serial\": \"$2\", \"ips\": $3 }" "$ADDR/settings/ips"
else
echo "Invalid method"
exit 1
fi

13
set_params.sh Executable file
View File

@ -0,0 +1,13 @@
if [[ $1 == "" ]]; then
echo "No template file specified"
fi
if [[ $2 == "" ]]; then
echo "No serial specified"
fi
if [[ $3 == "" ]]; then
echo "No reg number specified"
fi
cat $1 | sed "s/<DEVICE_SERIAL>/$2/" | sed "s/<REGISTRATION_NUMBER>/$3/" > ready_params.json
./req.sh set-device-params ready_params.json

60
sets/ekb-sinara.sh Executable file
View File

@ -0,0 +1,60 @@
CMD=./set_params.sh
TEMPLATE=./templates/ekb-sinara.json
$CMD $TEMPLATE 2025041600000001 "ТЛ 236"
$CMD $TEMPLATE 2025041700000023 "ТЛ 238"
$CMD $TEMPLATE 2025041700000024 "ТЛ 239"
$CMD $TEMPLATE 2025041700000025 "ТЛ 240"
$CMD $TEMPLATE 2025041700000026 "ТЛ 241"
$CMD $TEMPLATE 2025041700000027 "ТЛ 242"
$CMD $TEMPLATE 2025041700000028 "ТЛ 243"
$CMD $TEMPLATE 2025041700000029 "ТЛ 244"
$CMD $TEMPLATE 2025041700000030 "ТЛ 245"
$CMD $TEMPLATE 2025041700000031 "ТЛ 246"
$CMD $TEMPLATE 2025041700000032 "ТЛ 247"
$CMD $TEMPLATE 2025041700000033 "ТЛ 248"
$CMD $TEMPLATE 2025041700000034 "ТЛ 249"
$CMD $TEMPLATE 2025041700000035 "ТЛ 250"
$CMD $TEMPLATE 2025041700000036 "ТЛ 251"
$CMD $TEMPLATE 2025041700000037 "ТЛ 252"
$CMD $TEMPLATE 2025041700000038 "ТЛ 253"
$CMD $TEMPLATE 2025041700000039 "ТЛ 254"
$CMD $TEMPLATE 2025041700000040 "ТЛ 255"
$CMD $TEMPLATE 2025041700000041 "ТЛ 256"
$CMD $TEMPLATE 2025041700000042 "ТЛ 257"
$CMD $TEMPLATE 2025041700000043 "ТЛ 258"
$CMD $TEMPLATE 2025041800000043 "ТЛ 526"
$CMD $TEMPLATE 2025041800000044 "ТЛ 527"
$CMD $TEMPLATE 2025041800000045 "ТЛ 528"
$CMD $TEMPLATE 2025041800000046 "ТЛ 529"
$CMD $TEMPLATE 2025041800000047 "ТЛ 530"
$CMD $TEMPLATE 2025041800000049 "ТЛ 532"
$CMD $TEMPLATE 2025041800000050 "ТЛ 533"
$CMD $TEMPLATE 2025041800000051 "ТЛ 534"
$CMD $TEMPLATE 2025041800000052 "ТЛ 535"
$CMD $TEMPLATE 2025041800000053 "ТЛ 536"
$CMD $TEMPLATE 2025041800000054 "ТЛ 537"
$CMD $TEMPLATE 2025041800000055 "ТЛ 538"
$CMD $TEMPLATE 2025041800000056 "ТЛ 539"
$CMD $TEMPLATE 2025041800000057 "ТЛ 540"
$CMD $TEMPLATE 2025041800000059 "ТЛ 542"
$CMD $TEMPLATE 2025041800000060 "ТЛ 543"
$CMD $TEMPLATE 2025041800000061 "ТЛ 544"
$CMD $TEMPLATE 2025041800000062 "ТЛ 545"
$CMD $TEMPLATE 2025041800000063 "ТЛ 546"
$CMD $TEMPLATE 2025041800000064 "ТЛ 547"
$CMD $TEMPLATE 2025041800000065 "ТЛ 548"
$CMD $TEMPLATE 2025041800000066 "ТЛ 549"
$CMD $TEMPLATE 2025041800000067 "ТЛ 550"
$CMD $TEMPLATE 2025041800000068 "ТЛ 551"
$CMD $TEMPLATE 2025041800000069 "ТЛ 552"
$CMD $TEMPLATE 2025042190000003 "ТЛ 531"
$CMD $TEMPLATE 2025042190000005 "ТЛ 237"
$CMD $TEMPLATE 2025042190000006 "ТЛ 541"
# ./set_params.sh ./templates/ekb-sinara.json 2025041800000054 "ТЛ 537"

15
sets/ekb-volgabus-ips.sh Executable file
View File

@ -0,0 +1,15 @@
./req.sh set-ips 2025061400000071 "[\"192.168.0.111\", \"192.168.111.111\"]"
./req.sh set-ips 2025072900000070 "[\"192.168.0.111\", \"192.168.111.111\"]"
./req.sh set-ips 2025072900000072 "[\"192.168.0.111\", \"192.168.111.111\"]"
./req.sh set-ips 2025072900000073 "[\"192.168.0.111\", \"192.168.111.111\"]"
./req.sh set-ips 2025072900000074 "[\"192.168.0.111\", \"192.168.111.111\"]"
./req.sh set-ips 2025072900000075 "[\"192.168.0.111\", \"192.168.111.111\"]"
./req.sh set-ips 2025072900000076 "[\"192.168.0.111\", \"192.168.111.111\"]"
./req.sh set-ips 2025072900000077 "[\"192.168.0.111\", \"192.168.111.111\"]"
./req.sh set-ips 2025072900000078 "[\"192.168.0.111\", \"192.168.111.111\"]"
./req.sh set-ips 2025072900000079 "[\"192.168.0.111\", \"192.168.111.111\"]"
./req.sh set-ips 2025072900000080 "[\"192.168.0.111\", \"192.168.111.111\"]"
./req.sh set-ips 2025072900000081 "[\"192.168.0.111\", \"192.168.111.111\"]"
./req.sh set-ips 2025072900000082 "[\"192.168.0.111\", \"192.168.111.111\"]"
./req.sh set-ips 2025072900000083 "[\"192.168.0.111\", \"192.168.111.111\"]"
./req.sh set-ips 2025072900000086 "[\"192.168.0.111\", \"192.168.111.111\"]"

21
sets/ekb-volgabus.sh Executable file
View File

@ -0,0 +1,21 @@
CMD=./set_params.sh
TEMPLATE=./templates/test-ekb-volgabus.json
#./set_params.sh 2025061400000071 "3001АВТ"
#./set_params.sh 2025072900000070 "3000АВТ"
#./set_params.sh 2025072900000072 "3002ABT"
#./set_params.sh 2025072900000073 "3003ABT"
#./set_params.sh 2025072900000074 "3004АВТ"
#./set_params.sh 2025072900000075 "3008АВТ"
#./set_params.sh 2025072900000076 "3006АВТ"
#./set_params.sh 2025072900000077 "3007ABT"
#./set_params.sh 2025072900000078 "3009АВТ"
#./set_params.sh 2025072900000079 "3005АВТ"
#./set_params.sh 2025072900000080 "3011АВТ"
#./set_params.sh 2025072900000081 "3012АВТ"
#./set_params.sh 2025072900000082 "3013АВТ"
#./set_params.sh 2025072900000083 "3014АВТ"
#./set_params.sh 2025072900000086 "3010АВТ"
$CMD $TEMPLATE 2025062300000083 "3014Екб"

21
sets/spb-sinara.sh Executable file
View File

@ -0,0 +1,21 @@
CMD=./set_params.sh
TEMPLATE=./templates/spb-sinara.json
$CMD $TEMPLATE 2025041600000004 "3001"
$CMD $TEMPLATE 2025041700000005 "3002"
$CMD $TEMPLATE 2025041700000006 "3003"
$CMD $TEMPLATE 2025041700000007 "3004"
$CMD $TEMPLATE 2025041700000008 "3005"
$CMD $TEMPLATE 2025041700000009 "3006"
$CMD $TEMPLATE 2025041700000010 "3007"
$CMD $TEMPLATE 2025041700000011 "3008"
$CMD $TEMPLATE 2025041700000012 "3009"
$CMD $TEMPLATE 2025041700000013 "3010"
$CMD $TEMPLATE 2025041700000014 "3011"
$CMD $TEMPLATE 2025041700000015 "3018"
$CMD $TEMPLATE 2025041700000016 "3013"
$CMD $TEMPLATE 2025041700000018 "3015"
$CMD $TEMPLATE 2025041700000019 "3016"
$CMD $TEMPLATE 2025041700000020 "3017"
$CMD $TEMPLATE 2025041700000022 "3019"
$CMD $TEMPLATE 2025050500000023 "3012"

82
stat.sh Executable file
View File

@ -0,0 +1,82 @@
if [[ $1 == "" ]]; then
echo No dir specified
exit 1
fi
remove_shit() {
grep -v 2025041600000003 | \
grep -v 2025041700000017 | \
grep -v FemaDeviceEmulat | \
grep -v FEMA_TEST_DEPLOY | \
grep -v FEMACLIENT_02 | \
grep -v 35JUZQY1rw2FIr3h | \
grep -v 1459559259125979 | \
grep -v 8502B557D56FB5C4 | \
grep -v hjaXtQ24Lh2RNwGV | \
grep -v FEMACLIENT_03 | \
grep -v T8yz7o6NEJ9RptU8 | \
grep -v ABCDEABCDEABCDEA | \
grep -v T8yz7o6NEJ9RptU8 | \
grep -v 2025062090000008 | \
grep -v 2025042190000007
}
get_serials() {
find -maxdepth 1 -type f | \
remove_shit | \
sort
}
hash() {
cat $1 | \
grep -v REG_NUMBER | \
grep -v GOS_NUMBER | \
grep -v VIN | \
grep -v "\"GROUP\"" | \
shasum -a 1 | \
cut -c1-8
}
format_hash() {
echo $1 | \
sed 's/d4ae9b2a/AL1 prisoner/' | \
sed 's/d779ff9c/AL1 prisoner/' | \
sed 's/c940e51e/spb sinara - OK/' | \
sed 's/8ff42655/spb sinara - SHIT new ports, no sinara port set/' | \
sed 's/26c08847/spb sinara polygon - SHIT E-PKV/' | \
sed 's/6b8be672/spb sinara polygon - SHIT LEAKAGE and MDVR etc/' | \
sed 's/0002cb14/spb sinara polygon - SHIT WTF why there is MDVR/' | \
sed 's/cf279b97/ekb sinara - OK/' | \
sed 's/cd347055/ekb sinara - OK 1/' | \
sed 's/cf279b97/ekb sinara - SHIT E-PKV, ekb port 39445/' | \
sed 's/ce638624/ekb sinara - SHIT 1 E-PKV, ekb port 39445/' | \
sed 's/b55c04bc/ekb volgabus polygon - SHIT ips null/' | \
sed 's/3ffbb7aa/ekb volgabus polygon - SHIT ips null (other hosts order)/' | \
sed 's/fe450236/ekb volgabus - SHIT ips null, small sensor changes/' | \
sed 's/a4e5b9cc/ekb volgabus - SHIT ips null, better sensor names/'
}
get_reg() {
cat $1 | grep REG_NUMBER | cut -d "\"" -f 4
}
cd $1; get_serials | while read f; do
h=$(hash $f)
echo $f -- $h -- $(get_reg $f) -- $(format_hash $h)
#echo $f -- $(hash $f)
done
# 26c08847 - 3005 ekb sinara - OK
# cf279b97 - TL 254 spb sinara - OLD has E-PKV
# 6b8be672 - 3017 spb sinara - OK polygon
# c940e51e - 3010 spb sinara - OK
# d4ae9b2a - 3014 spb sinara - OK polygon TEST i am not sure
# b55c04bc - 3009ABT ekb volgab - SHIT ips null, polygon
# 3ffbb7aa - 3007ABT ekb volgab - SHIT ips null, polygon (other hosts order)
# 8ff42655 - 3002 spb sinara - SHIT new ports, now sinara port set
# fe450236 - 3000ABT ekb volgab - SHIT ips null, small sensor changes
# a4e5b9cc - 3011ABT

8440
templates/ekb-sinara.json Normal file

File diff suppressed because it is too large Load Diff

7082
templates/ekb-volgabus.json Normal file

File diff suppressed because it is too large Load Diff

8436
templates/spb-sinara.json Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

5
tests/check-ips.sh Executable file
View File

@ -0,0 +1,5 @@
# List all extra fields
#ssh root@62.217.183.88 -t 'cd /var/lib/docker/volumes/fema_storage/_data; find -name params.json | while read file; do echo "$file - $(cat $file | jq ".EXTRA")"; done'
# List ips for volgabus
ssh root@62.217.183.88 -t 'cd /var/lib/docker/volumes/fema_storage/_data; find -name params.json | while read file; do echo "$file - $(cat $file | jq "if (.SYSTEM.REG_NUMBER | contains(\"АВТ\")) then .EXTRA else \"NONE\" end")"; done | grep -v NONE'