Page 1 of 1

[Ubuntu] MusikBot Startscript

Posted: Fri Apr 29, 2016 3:16 pm
by philippe
Moin,

Hier gibt es ein Neues Script von mir (TS3MB_Script): http://forum.ts3musicbot.net/viewtopic.php?f=29&t=2208

möchte euch hier gerne ein Script zum Starten, Stoppen, Restarten und Statusabfrage zur verfügung stellen.

Mit diesem Script kann der Bot auch unter Root gestartet werden, da der Bot Trodsdem als User ausgeführt wird.
Außerdem kann der Bot nicht aus versehen ein Zweites mal gestartet werden, da überprüft wird ob er bereits Läuft.
Und es kann geprüft werden ob der Bot Läuft oder nicht.
Zusätzlich könnt ihr den Bot Automatisch mit dem Server Starten Lassen und Automatisch einen Restart durchführen lassen (per Cronjob).


Ihr müsst das Script in den Ordner eures Bots Kopieren.

1. Daten Eingeben
In der Datei könnt ihr unter edit variables eure Daten eingeben.
Code: Select all
# --- edit variables  ---
USER="philippe"							#USER WHICH THE BOT RUN AT
EMAIL="EMAIL"							#e.g ts3bot@email.com
PORT="8080"								#e.g 8080, 8079 (1024-65535) ! WANT TO START A SECOND BOT CHANGE THIS !
MASTERPW="PASSWORD"					#ADMIN PASSWORD
USERPW="PASSWORD"					#USER PASSWORD
QUERY="query"							#START BOT AS query OR noquery
SCREENNAME="musikbot_1"				#SCREEN NAME ! WANT TO START A SECOND BOT CHANGE THIS !
NUMBER="1"								#Can set which configuration should get loaded. Valid values are 1, 2 or 3 (for private licenes only).
MAXDISKSPACE="102400"					#Set the maximum allowed amount of disk space to use in megabyte for music+radio folder. (102400 mb is 100 GB(1024 mb = 1 GB))
BOOTTIME="30"							#This Time the Script is waiting at a Server Boot to starting the Bot
# --- edit variables END ---
Und danach könnt ihr das Script verwenden.

Folgende Befehle könnt ihr Verwenden:
start
stop
restart
status


2. 2. und 3. Bot Starten
Wenn ihr einen Zweiten und Dritten Bot starten möchtet Dupliziert jetzt einfach die Datei und nennt sie z.b. "musikbot_2.sh" und "musikbot_3.sh"
Danach müsst ihr die Werte PORT und SCREENNAME auf jedenfall abändern!
Außerdem solltet ihr den Wert BOOTTIME erhöhen z.b. beim 2. Bot auf "60" und beim 3. Bot auf "90"
Optional könnt ihr auch noch den Wert NUMBER auf "2" bzw auf "3" abändern damit ihr euern Bot jeweils einen Eigenen Namen geben könnt und auch getrennt Konfigurieren könnt (Im Webinterface)


3. Script von überall Ausführen
Wenn ihr das Script von überall aus starten möchtet könnt ihr die Datei mit Folgenden befehl verlinken nach /usr/local/bin/ (als ROOT!) :
Code: Select all
ln -s /pfad/zum/bot/musikbot_1.sh /usr/local/bin/
und für den 2. und 3. Bot wäre das:
Code: Select all
ln -s /pfad/zum/bot/musikbot_2.sh /usr/local/bin/
ln -s /pfad/zum/bot/musikbot_3.sh /usr/local/bin/
Danach könnt ihr z.b. mit:
Code: Select all
musikbot_1.sh start
den Bot starten von jedem verzeichnis aus.


4. Auto Start und Auto Reboot
Außerdem könnt ihr per Cronjob den Bot Automatisch mit dem Server Sarten und Automatisch einen Restart durchführen.
Dafür fügt ihr in der cronjob folgende Zeilen hinzu:
crontab -e
Code: Select all
@reboot /pfad/zum/bot/musikbot_1.sh boot
1 5 * * * /pfad/zum/bot/musikbot_1.sh restart
Für den 2. und 3. Bot sähe das dann z.b. so aus
Code: Select all
@reboot /pfad/zum/bot/musikbot_2.sh boot
2 5 * * * /pfad/zum/bot/musikbot_2.sh restart
@reboot /pfad/zum/bot/musikbot_3.sh boot
3 5 * * * /pfad/zum/bot/musikbot_3.sh restart
So Starten die Bot wenn der Server Startet
und er macht einen Neustart um 5:01 Uhr bzw 2. Bot 5:02 bzw 3. Bot 5:03


Hier der Komplette Code:
Code: Select all
#!/bin/sh

# DON'T CHANGE THAT OR IT GET BROKEN!
D1=$(readlink -f "$0")
BINARYPATH="$(dirname "${D1}")"
cd "${BINARYPATH}"
LIBRARYPATH="$(pwd)"
# DON'T CHANGE THAT OR IT GET BROKEN!


# --- edit variables  ---
USER="philippe"							#USER WHICH THE BOT RUN AT
EMAIL="EMAIL"							#e.g ts3bot@email.com
PORT="8080"								#e.g 8080, 8079 (1024-65535) ! WANT TO START A SECOND BOT CHANGE THIS !
MASTERPW="PASSWORD"						#ADMIN PASSWORD
USERPW="PASSWORD"						#USER PASSWORD
QUERY="query"							#START BOT AS query OR noquery
SCREENNAME="musikbot_1"					#SCREEN NAME ! WANT TO START A SECOND BOT CHANGE THIS !
NUMBER="1"								#Can set which configuration should get loaded. Valid values are 1, 2 or 3 (for private licenes only).
MAXDISKSPACE="102400"					#Set the maximum allowed amount of disk space to use in megabyte for music+radio folder. (102400 mb is 100 GB(1024 mb = 1 GB))
BOOTTIME="30"							#This Time the Script is waiting at a Server Boot to starting the Bot
# --- edit variables END ---

#Do you will have a auto restart? Then you add the follow lines in the crontab without the (#)
#1 5 * * * /pfad/zum/bot/musikbot_1.sh restart
#Then the Bot restart Every Day at 5:01 Uhr
#
#whith this line the bot starting when the server starting:
#@reboot /pfad/zum/bot/musikbot_1.sh boot


#CHANGE IF YOU WANT BUT DON'T ASK WHY YOUR CONFIGURATION DOESN'T WORK
case "$1" in
	start)
		if whoami | grep -q -w $USER; then
			if screen -list | grep -q -w $SCREENNAME; then
				echo "TS3MusikBot is already running. try stop or restart"
				exit 1
			else
				screen -AmdS $SCREENNAME ./TS3MusicBot_runscript.sh -account $EMAIL -port $PORT -webif-pw $MASTERPW -webif-pw-user $USERPW -$QUERY -number $NUMBER -max-disk-space $MAXDISKSPACE
				sleep 10
				if screen -list | grep -q -w $SCREENNAME; then
					echo "TS3MusikBot is running"
				else echo "TS3MusikBot is not running!"
				fi
			fi
		else
			if su $USER -c "screen -list" | grep -q -w $SCREENNAME; then
				echo "TS3MusikBot is already running"
				exit 1
			else
				su $USER -c "screen -AmdS $SCREENNAME ./TS3MusicBot_runscript.sh -account $EMAIL -port $PORT -webif-pw $MASTERPW -webif-pw-user $USERPW -$QUERY -number $NUMBER -max-disk-space $MAXDISKSPACE"
				sleep 10
				if su $USER -c "screen -list" | grep -q -w $SCREENNAME; then
					echo "TS3MusikBot is running"
				else echo "TS3MusikBot is not running!"
				fi
			fi
		fi
	;;
	stop)
		if whoami | grep -q -w $USER; then
			screen -S $SCREENNAME -X stuff 'stop\n'
			sleep 5
			if screen -list | grep -q -w $SCREENNAME; then
				screen -p 0 -S $SCREENNAME -X quit
			fi
		else su $USER -c "screen -S $SCREENNAME -X stuff $'quit\n'"
			sleep 5
			if su $USER -c "screen -list" | grep -q -w $SCREENNAME; then
				su $USER -c "screen -p 0 -S $SCREENNAME -X quit"
			fi
		fi
		echo "TS3MusikBot is stopping"
	;;
	restart)
		echo "TS3MusikBot is restarting ..."
		$0 stop
		sleep 25
		$0 start
	;;
	status)
		if whoami | grep -q -w $USER; then
			if screen -list | grep -q -w $SCREENNAME; then
				echo "TS3MusikBot is running"
			else echo "TS3MusikBot is not running"
			fi
		elif su $USER -c "screen -list" | grep -q -w $SCREENNAME; then
			echo "TS3MusikBot is running"
		else echo "TS3MusikBot is not running"
		fi
	;;
	boot)
		# This is for Crontab @reboot
		sleep $BOOTTIME
		$0 start
	;;
	*)
		echo "Benutze: ${0} {start|stop|restart|status} made by philw95(Philippe)"
		exit 1
esac
exit 0
#THAT'S THE END OF THE CONFIG
#Made by philw95(Philippe)
Datei ist auch als Anhang mit dabei.

Getestet auf Ubuntu 14.04.4 LTS

Letztes Update: 01.05.2016

Ich wünsche euch Viel Spaß :D

Mit freundlichen Grüßen
Philippe

Re: [Ubuntu] MusikBot Startscript

Posted: Sat Apr 30, 2016 12:15 am
by philippe
Moin,

Hier ein Script um den Bot im Beta mode zu Starten:
Code: Select all
#!/bin/sh

# DON'T CHANGE THAT OR IT GET BROKEN!
D1=$(readlink -f "$0")
BINARYPATH="$(dirname "${D1}")"
cd "${BINARYPATH}"
LIBRARYPATH="$(pwd)"
# DON'T CHANGE THAT OR IT GET BROKEN!


# --- edit variable  ---
USER="philippe"							#USER WHICH THE BOT RUN AT
EMAIL="EMAIL"							#e.g ts3bot@email.com
PORT="8083"								#e.g 8080, 8079 (1024-65535) ! WANT TO START A SECOND BOT CHANGE THIS !
MASTERPW="PASSWORD"						#ADMIN PASSWORD
USERPW="PASSWORD"						#USER PASSWORD
QUERY="query"							#START BOT AS query OR noquery
SCREENNAME="musikbot_3_beta"			#SCREEN NAME                 ! WANT TO START A SECOND BOT CHANGE THIS !
NUMBER="3"								#Can set which configuration should get loaded. Valid values are 1, 2 or 3 (for private licenes only).
MAXDISKSPACE="102400"					#Set the maximum allowed amount of disk space to use in megabyte for music+radio folder.
CLIENTNAME="Musik Box III [Beta]"		#Set the Name of the Client
BOOTTIME="30"							#This Time the Script is waiting at a Server Boot to starting the Bot
# --- edit variables END ---

#Do you will have a auto restart? Then you add the follow lines in the crontab without the (#)
#3 5 * * * /home/philippe/ts3bot_b/musikbot_3_beta.sh restart
#Then the Bot restart Every Day at 5:03 Uhr
#
#whith this line the bot starting when the server starting:
#@reboot /home/philippe/ts3bot/musikbot_3_beta.sh boot


#CHANGE IF YOU WANT BUT DON'T ASK WHY YOUR CONFIGURATION DOESN'T WORK
case "$1" in
    start)
		if whoami | grep -q -w $USER; then
			if screen -list | grep -q -w $SCREENNAME; then
				echo "TS3MusikBot is already running. try stop or restart"
				exit 1
			else
				screen -AmdS $SCREENNAME ./TS3MusicBot_runscript.sh -account $EMAIL -port $PORT -webif-pw $MASTERPW -webif-pw-user $USERPW -$QUERY -number $NUMBER -max-disk-space $MAXDISKSPACE -client-name $CLIENTNAME -beta
				sleep 10
				if screen -list | grep -q -w $SCREENNAME; then
					echo "TS3MusikBot is running"
				else echo "TS3MusikBot is not running!"
				fi
			fi
		else 
			if su $USER -c "screen -list" | grep -q -w $SCREENNAME; then
				echo "TS3MusikBot is already running"
				exit 1
			else
				su $USER -c "screen -AmdS $SCREENNAME ./TS3MusicBot_runscript.sh -account $EMAIL -port $PORT -webif-pw $MASTERPW -webif-pw-user $USERPW -$QUERY -number $NUMBER -max-disk-space $MAXDISKSPACE -client-name Musik%20Box%20III%20[Beta] -beta"
				sleep 10
				if su $USER -c "screen -list" | grep -q -w $SCREENNAME; then
					echo "TS3MusikBot is running"
				else echo "TS3MusikBot is not running!"
				fi
			fi
		fi
    ;;
    stop)
		if whoami | grep -q -w $USER; then
			screen -S $SCREENNAME -X stuff 'quit\n'
			sleep 5
			if screen -list | grep -q -w $SCREENNAME; then
				screen -p 0 -S $SCREENNAME -X quit
			fi
        else su $USER -c "screen -S $SCREENNAME -X stuff $'quit\n'"
			sleep 5
			if su $USER -c "screen -list" | grep -q -w $SCREENNAME; then
				su $USER -c "screen -p 0 -S $SCREENNAME -X quit"
			fi
		fi
		echo "TS3MusikBot is stopping"
    ;;
    restart)
        echo "TS3MusikBot is restarting ..."
		$0 stop
        sleep 30 #MY DEFAULT CHANGE THIS IF YOU WANT
        $0 start
    ;;
	status)
		if whoami | grep -q -w $USER; then
			if screen -list | grep -q -w $SCREENNAME; then
				echo "TS3MusikBot is running"
			else echo "TS3MusikBot is not running"
			fi
		elif su $USER -c "screen -list" | grep -q -w $SCREENNAME; then
			echo "TS3MusikBot is running"
		else echo "TS3MusikBot is not running"
		fi
	;;
	boot)
		# This is for Crontab @reboot
		sleep $BOOTTIME
		$0 start
	;;
    *)
        echo "Benutze: ${0} {start|stop|restart|status} made by philw95"
        exit 1
esac
exit 0
#THAT'S THE END OF THE CONFIG
#Made by philw95
ist fast genauso wie Oben bis auf
1. Im Start befehl steht zusätzlich -beta und -client-name
2. Im edit variables kann man unter CLIENTNAME ein Speziellen Nicknamen angeben für den Client ohne es in der Config im Bot Ändern zu müssen.

MfG
Philippe

Re: [Ubuntu] MusikBot Startscript

Posted: Sat Apr 30, 2016 12:46 am
by philippe
Moin,

Kleines Update:
Bot per Cronjob Automatisch Neustarten und Automatischer Start beim Server Start.
Script wurde minimal editiert.

Siehe oben.

Mit freundlichen Grüßen
Philippe

Re: [Ubuntu] MusikBot Startscript

Posted: Sun May 01, 2016 11:35 am
by philippe
Moin,

Update:
Anleitung für Nutzung vom mehreren Bots erweitert.

Datei hat sich nicht Geändert.

MfG
Philippe