Con Job auschalten

samedi 22 août 2015

Hallo werte Linux gemeinde,

Ich habe da ein kleines Problem.

Ich würde gerne ein Autoupdater für das Spiel Ark in mein Cronjob einbinden.

Mir wurde vom Support wo ich mein Server laufen habe gesagt ich muss beim Start meines Scriptes Cronjob ausschalten und am ende wieder anschalten.

und dies dann in denn Cronjob einbinden.

Nun meine frage.

Da ich kein System habe um dies zu prüfen würde ich gerne die Meinung von Profis wissen.

Würde das so Funktionieren?

4


Vor 3 Stunden



#!/bin/bash
/etc/init.d/crond stop
STEAMDIR=/home/steam/Steam
STEAMCMDDIR=/home/steam/steamcmd
STEAMCMDSCRIPT=update.txt
SERVERDIR=/home/steam/ark
RCONPASSWORD=YOURPASSWORD
RCONIP=127.0.0.1
RCONPORT=32330
RCONFILE=/home/steam/rcon
SERVERSTARTCOMMAND=$SERVERDIR"/ShooterGame/Binaries/Linux/ShooterGameServer "TheIsland?QueryPort=27015?Port=7777?SetCheatPlaye r=True?RCONEnabled=True?RCONPort="$RCONPORT"?liste n" -server -log"
cd $HOMEDIR
if [ ! -f $SERVERDIR/updateinprogress.dat ] ; then
touch $SERVERDIR/updateinprogress.dat
rm -fr $STEAMDIR/appcache
$STEAMCMDDIR/steamcmd.sh +login anonymous +app_info_update 1 +app_info_print "376030" +quit | grep -EA 1000 "^\s+"branches"$" | grep -EA 5 "^\s+"public"$" | grep -m 1 -EB 10 "^\s+}$" | grep -E "^\s+"buildid"\s+" | tr '[:blank:]"' ' ' | tr -s ' ' | cut -d\ -f3 > $SERVERDIR/latestavailableupdate.txt
sleep 1m
LATESTUPDATE=`cat $SERVERDIR/latestavailableupdate.txt`
INSTALLEDUPDATE=`cat $SERVERDIR/latestinstalledupdate.txt`
if [ "$LATESTUPDATE" != "$INSTALLEDUPDATE" ] && [ "$LATESTUPDATE" != "" ] && [ "$INSTALLEDUPDATE" != "" ]
then
$RCONFILE -P$RCONPASSWORD -a$RCONIP -p$RCONPORT broadcast New update available, server is restarting in 10 minutes!
sleep 5m
$RCONFILE -P$RCONPASSWORD -a$RCONIP -p$RCONPORT broadcast New update available, server is restarting in 5 minutes!
sleep 4m
$RCONFILE -P$RCONPASSWORD -a$RCONIP -p$RCONPORT saveworld
sleep 10
while [ $(( (`date +%s` - `stat -L --format %Y $SERVERDIR/ShooterGame/Saved/SavedArks/TheIsland.ark`) > (2*60) )) -eq 1 ]; do
sleep 1m
done
$RCONFILE -P$RCONPASSWORD -a$RCONIP -p$RCONPORT exit
echo "$(date) Update - $(echo $INSTALLEDUPDATE) to $(echo $LATESTUPDATE)" >> $(echo $SERVERDIR)/Updatelog.txt
rm -f $SERVERDIR/updateinprogress.dat
$RCONFILE -P$RCONPASSWORD -a$RCONIP -p$RCONPORT broadcast New update available, server is restarting!
$STEAMCMDDIR/steamcmd.sh +runscript $STEAMCMDSCRIPT
$STEAMCMDDIR/steamcmd.sh +login anonymous +app_info_update 1 +app_info_print "376030" +app_info_print "376030" +quit | grep -EA 1000 "^\s+"branches"$" | grep -EA 5 "^\s+"public"$" | grep -m 1 -EB 10 "^\s+}$" | grep -E "^\s+"buildid"\s+" | tr '[:blank:]"' ' ' | tr -s ' ' | cut -d\ -f3 > $SERVERDIR/latestinstalledupdate.txt
rm -f $SERVERDIR/updateinprogress.dat
$SERVERSTARTCOMMAND
else
rm -f $SERVERDIR/updateinprogress.dat
fi
fi
/etc/init.d/crond start


es geht hierbei NUR um die Cronjob aus und Anschaltung. Der rest funktioniert einwandfrei.

Gruß


0 commentaires:

Enregistrer un commentaire

 

Lorem

Ipsum

Dolor