Mein erstes größeres Skript.

Subchannel

Subchannel

Foren As
Hi Leutz, ich habe mal angefangen ein Skript für Debian-Gameserver zu schreiben womit man seinen TS & CSS Server sogut wie vollautomatisch installiert. Das ganze ist noch nicht fertig aber ich wollte mal nachfragen ob der Ansatz schonmal halbwegs stimmt.(Bin ja noch neu auf dem Gebiet Shell Skripte). Vielen Dank für die Kritik im voraus :P

Code:
#!/bin/bash
#Debian-Gameserver-Skript
PS3="What do you want to do?"
	select i in TS CSS abort; do
		case $i in 
#Install TS-Server
		TS) 
echo "Add a new user to the System. Please give the name of the new user.";
	read tsuser
		sudo useradd -m $tsuser && sudo passwd $tsuser && su $tsuser && cd $HOME &&
			if [ `pwd` == "/home/$tsuser" ];
				then
					echo "Downloading TS-Server now!"; echo "";
						wget ftp://ftp.freenet.de/pub/4players/teamspeak.org/releases/ts2_server_rc2_202319.tar.bz2; echo"";
					echo "Extract!"; echo ""; tar -jxvf ts2_server_rc2_202319.tar.bz2 && cd /home/$tsuser/tss2_rc2 && 
					echo "Downloading patched binary";
						wget ftp://ftp.freenet.de/pub/4players/teamspeak.org/developer/server/202401/server_linux && "TeamSpeak is ready to start!" 
				else
					su $tsuser && cd /home/$tsuser && echo "Downloading TS-Server now!"; echo "";
						wget ftp://ftp.freenet.de/pub/4players/teamspeak.org/releases/ts2_server_rc2_202319.tar.bz2; echo"";
					echo "Extract!"; echo ""; tar -jxvf ts2_server_rc2_202319.tar.bz2 && cd /home/$tsuser/tss2_rc2 && 
					echo "Downloading patched binary";
						wget ftp://ftp.freenet.de/pub/4players/teamspeak.org/developer/server/202401/server_linux && "TeamSpeak is ready to start!"   
			fi
		break;;
#Install CSS-Server
		CSS) echo "Add a new user to the System. Please give the name of the new user.";
	read cssuser
		sudo useradd -m $cssuser && sudo passwd $cssuser && su $cssuser && cd $HOME &&
			if [ `pwd` == "/home/$cssuser" ];
				then
					echo "Downloading CSS-Server now!"; echo "";
						wget http://www.steampowered.com/download/hldsupdatetool.bin; echo""; chmod +x hldsupdatetool.bin; echo "Starting update"; echo"";
							./hldsupdatetool.bin; ./hldsupdatetool.bin; echo "Starting Steam and downloading CSS"; echo"";
							./steam -command update -game "Counter-Strike Source" -dir /home/$cssuser; echo "Try to install screen"; echo""; su apt-get install screen &&
							echo "The CSS-Server is ready to start"
				else
					su $cssuser && cd /home/$cssuser && echo "Downloading CSS-Server now!"; echo ""
					wget http://www.steampowered.com/download/hldsupdatetool.bin; echo""; chmod +x hldsupdatetool.bin; echo "Starting update"; echo"";
							./hldsupdatetool.bin; ./hldsupdatetool.bin; echo "Starting Steam and downloading CSS"; echo"";
							./steam -command update -game "Counter-Strike Source" -dir /home/$cssuser; echo "Try to install screen"; echo""; su apt-get install screen &&
							echo "The CSS-Server is ready to start"
			fi
		break;;
#Abort Script
		abort) echo "Cya!!!"; break;;
		esac
done
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

So ich habe den ersten Fehler gefunden. Habe erstmal aus obigen Skript alle
Code:
sudo
entfernt, weil ja mittels su root das skript per ssh ausgeführt wird.

Code:
#!/bin/bash
#Debian-Gameserver-Skript
PS3="What do you want to do?"
	select i in TS CSS abort; do
		case $i in 
#Install TS-Server
		TS) 
echo "Add a new user to the System. Please give the name of the new user.";
	read tsuser
		 useradd -m $tsuser &&  passwd $tsuser && su $tsuser && cd $HOME &&
			if [ `pwd` == "/home/$tsuser" ];
				then
					echo "Downloading TS-Server now!"; echo "";
						wget ftp://ftp.freenet.de/pub/4players/teamspeak.org/releases/ts2_server_rc2_202319.tar.bz2; echo"";
					echo "Extract!"; echo ""; tar -jxvf ts2_server_rc2_202319.tar.bz2 && cd /home/$tsuser/tss2_rc2 && 
					echo "Downloading patched binary"; echo"";
						wget ftp://ftp.freenet.de/pub/4players/teamspeak.org/developer/server/202401/server_linux && echo""; echo "TeamSpeak is ready to start!" 
				else
					su $tsuser && cd /home/$tsuser && echo "Downloading TS-Server now!"; echo "";
						wget ftp://ftp.freenet.de/pub/4players/teamspeak.org/releases/ts2_server_rc2_202319.tar.bz2; echo"";
					echo "Extract!"; echo ""; tar -jxvf ts2_server_rc2_202319.tar.bz2 && cd /home/$tsuser/tss2_rc2 && 
					echo "Downloading patched binary"; echo"";
						wget ftp://ftp.freenet.de/pub/4players/teamspeak.org/developer/server/202401/server_linux && echo""; echo "TeamSpeak is ready to start!"   
			fi
		break;;
#Install CSS-Server
		CSS) echo "Add a new user to the System. Please give the name of the new user.";
	read cssuser
		 useradd -m $cssuser &&  passwd $cssuser && su $cssuser && cd $HOME &&
			if [ `pwd` == "/home/$cssuser" ];
				then
					echo "Downloading CSS-Server now!"; echo "";
						wget http://www.steampowered.com/download/hldsupdatetool.bin; echo""; chmod +x hldsupdatetool.bin; echo "Starting update"; echo"";
							./hldsupdatetool.bin; ./hldsupdatetool.bin; echo "Starting Steam and downloading CSS"; echo"";
							./steam -command update -game "Counter-Strike Source" -dir /home/$cssuser; echo "Try to install screen"; echo""; su apt-get install screen &&
							echo "The CSS-Server is ready to start"
				else
					su $cssuser && cd /home/$cssuser && echo "Downloading CSS-Server now!"; echo ""
					wget http://www.steampowered.com/download/hldsupdatetool.bin; echo""; chmod +x hldsupdatetool.bin; echo "Starting update"; echo"";
							./hldsupdatetool.bin; ./hldsupdatetool.bin; echo "Starting Steam and downloading CSS"; echo"";
							./steam -command update -game "Counter-Strike Source" -dir /home/$cssuser; echo "Try to install screen"; echo""; su apt-get install screen &&
							echo "The CSS-Server is ready to start"
			fi
		break;;
#Abort Script
		abort) echo "Cya!!!"; break;;
		esac
done

Jetzt zu meinem Problem nach
Code:
su $tsuser
erscheint folgendes:

Code:
 ./deb_gameserver_ohne_sudo.sh
1) TS
2) CSS
3) abort
What do you want to do?1
Add a new user to the System. Please give the name of the new user.
test1
Enter new UNIX password: 
Retype new UNIX password: 
passwd: Kennwort erfolgreich geändert
sh-3.1$

Ich möchte ja eigentlich das das Skript nach dem Aufruf normal weiter läuft; kann mir einer helfen und mir erläutern was das Problem ist?
 
Zuletzt bearbeitet:
klemm eine endlos-Schleife a la

Code:
while true; do 
 
...

done

drum herum. Raus aus dem Skript dann mit

Code:
exit
 
Wäre eine Lösung aber das hat ja nix mit meinem beschriebenen Problem zu tun. Ich habe gelesen das wenn
Code:
su
aufgerufen wird und man in den neuen $user wechselt, "weiß" die neue Shell nix mehr von dem Skript, da das Skript ja vom anderem User gestartet wurde. So in der art habe ich das verstanden.

Hmpf, werde mich dann mal irgendwie an die Lösung machen ohne 2 Skripte schreiben zu müssen. Wenn jemand was weiß, bitte meldet euch :P
 
Zuletzt bearbeitet:

Ähnliche Themen

Problem mit HSPA+ Modem Huawei E353 - Installation unmöglich?

Autostart von X mit google-chrome durch systemd

Windows clients können nicht mehr auf lange laufendes System zugreifen

dovecot und postfix Konfiguration Problem

Minecraft Startscript

Zurück
Oben