Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- ### BEGIN INIT INFO
- # Provides: myprog
- # Required-Start: $remote_fs $syslog
- # Required-Stop: $remote_fs $syslog
- # Default-Start: 2 3 4 5
- # Default-Stop: 0 1 6
- # Short-Description: Arkserser init script
- # Descripton: this script manages Ark dedicated server
- NAME=arkserver
- USER=steam
- ARKPATH=/home/steam/Steam/steamapps/common/ARK\ Survival\ Evolved\ Dedicated\ Server/ShooterGame/
- PIDFILE=/var/run/${NAME}.pid
- DAEMON="${ARKPATH}Binaries/Linux/ShooterGameServer"
- DAEMONOPTS="TheIsland?listen?bRawSockets?SessionName=lijsdfgsg?ServerPassword=mklsjdlf?ServerAdminPassword=mùopiksdf?MapPlayerLocation?MaxPlayers=10 -server -log"
- Backuppath=/home/steam/backups/ark/
- Steamcmd="/home/steam/steamcmd.sh +login anonymous +force_install_dir "${GAMELOCATION}" +app_update 376030 validate +quit"
- name=$(date +%Y-%m-%d_%H-%M-%S)
- Sourcepath=${ARKPATH}Saved/SavedArks/
- [ -x "${DAEMON}" ] || exit 0
- #. /lib/lsb/init-functions
- case "$1" in
- coldbackup)
- if ! [ -s ${PIDFILE} ]
- then
- find "${Sourcepath}" -name "TheIsland_*.*.ark" -exec mv '{}' ${Backuppath}auto \;
- find "${Backuppath}auto" -mtime +1 -delete
- rsync -avh --delete --exclude *.bak "${Sourcepath}" "${Backuppath}latest"
- cd "${Backuppath}latest/"
- tar cvzf "${Backuppath}archives/${name}.tar.gz" ./*
- find "${Backuppath}archives/" -mtime +2 -delete
- chown -R ${USER}:${USER} "${Backuppath}"
- else
- echo "$NAME is running\nUse hotbackup"
- fi
- ;;
- hotbackup)
- if [ -s ${PIDFILE} ]
- then
- if [ $(find "${Sourcepath}" -mmin -15 | wc -l) -gt 0 ]
- then
- find "${Sourcepath}" -name "TheIsland_*.*.ark" -exec mv '{}' ${Backuppath}auto \;
- rsync -avh --delete --exclude *.bak "${Sourcepath}" "${Backuppath}latest"
- cd "${Backuppath}latest/"
- tar cvzf "${Backuppath}live/${name}.tar.gz" ./*
- find "${Backuppath}live/" -mmin +90 -delete
- chown -R ${USER}:${USER} "${Backuppath}"
- fi
- else
- echo "$NAME Process is not running"
- fi
- ;;
- update)
- if ! [ -s ${PIDFILE} ]
- then
- if [ "$(id -nu)" = "${USER}" ]
- then
- ${Steamcmd}
- else
- su - steam -c "${Steamcmd}"
- fi
- else
- echo "$NAME is curently running"
- fi
- ;;
- start)
- echo "Starting Ark dedicated server daemon, wait a minute to connect"
- start-stop-daemon --start --background -m --pidfile ${PIDFILE} --user ${USER} --exec "${DAEMON}" -- ${DAEMONOPTS}
- ;;
- stop)
- echo "Stoping Ark dedicated server daemon"
- PID=$(cat ${PIDFILE})
- start-stop-daemon --stop --pidfile ${PIDFILE}
- while [ -d /proc/${PID} ]
- do
- sleep 1
- done
- ;;
- restart)
- $0 stop
- $0 start
- ;;
- status)
- if [ -e $PIDFILE ]; then
- status_of_proc -p ${PIDFILE} ${DAEMON} && exit 0 || exit $?
- else
- echo "$NAME Process is not running"
- fi
- ;;
- *)
- N=$0
- echo "Usage: $N {start|stop|restart|coldbackup|hotbackup|update}" >&2
- exit 1
- ;;
- esac
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement