Shell script for auto restart

Hurtlocker

Участник
Сообщения
15
Реакции
1
Can anybody make a Shell script for auto restart screen once a day? I mean close the screen fully and start it again
Im using debian 8
Css v34 server
 

Strangelove

Добрая душа
Сообщения
77
Реакции
35
Hello.
#!/bin/bash
# SRCDS restart
# Stefan, 2018

# Edit these:
screen_name=test_server #screen name obviously. should be specified in your startup script
dir=/home/steam/test_srv1 #directory of your startup script
start=./start_silent #your startup script

# Don't touch if you don't know what you're doing.
scrsend()
{
screen -S $screen_name -p 0 -X stuff "$1^M"
}

scrsend "sm_say Reloading..."
sleep 1
scrsend "sm_say Server is going for planned restart. You will be reconnected."
sleep 1
scrsend "sm_say Planned server restart in 30 seconds ..."
sleep 10
scrsend "sm_say Planned server restart in 20 seconds ..."
sleep 10
scrsend "sm_say Planned server restart in 10 seconds ..."
sleep 5
scrsend "sm_say Planned server restart in 5 seconds ..."
sleep 1
scrsend "sm_say Planned server restart in 4 seconds ..."
sleep 1
scrsend "sm_say Planned server restart in 3 seconds ..."
sleep 1
scrsend "sm_say Planned server restart in 2 seconds ..."
sleep 1
scrsend "sm_say Planned server restart in 1 seconds ..."
sleep 1

scrsend "sm_exec @humans retry" # requires "UsefulCommands" by eyal282 @ Alliedmods.net

sleep 0.2
kill $(screen -ls | grep $screen_name | awk -F . {'print $1'})

if screen -ls | grep "$screen_name" ; then
echo "$screen_name still running, investigate manually." && exit 0
else
echo "Screen has been killed. Restarting..."
fi

cd $dir && $start

if screen -ls | grep "$screen_name" ; then
echo "$screen_name has just been normally restarted." && exit 0
else
echo "Warning: $screen_name is not running!!!" && exit 0
fi

Also if I were you I would like to add some sort of startup-failure report option(email/discord/telegram) in the last `if` operand unless you're using some monitoring system.
 
  • Мне нравится
Реакции: ifx
Сверху Снизу