Mein erstes größeres Skript.

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Subchannel, 19.12.2008.

  1. #1 Subchannel, 19.12.2008
    Zuletzt bearbeitet: 19.12.2008
    Subchannel

    Subchannel Foren As

    Dabei seit:
    03.03.2006
    Beiträge:
    87
    Zustimmungen:
    0
    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?
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Aqualung, 19.12.2008
    Aqualung

    Aqualung Routinier

    Dabei seit:
    12.02.2008
    Beiträge:
    404
    Zustimmungen:
    0
    klemm eine endlos-Schleife a la

    Code:
    while true; do 
     
    ...
    
    done  
    drum herum. Raus aus dem Skript dann mit

    Code:
    exit
     
  4. #3 Subchannel, 19.12.2008
    Zuletzt bearbeitet: 20.12.2008
    Subchannel

    Subchannel Foren As

    Dabei seit:
    03.03.2006
    Beiträge:
    87
    Zustimmungen:
    0
    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
     
Thema:

Mein erstes größeres Skript.

Die Seite wird geladen...

Mein erstes größeres Skript. - Ähnliche Themen

  1. Was für eine Programmiersprache sollte ich als erstes in meinem Leben lernen

    Was für eine Programmiersprache sollte ich als erstes in meinem Leben lernen: Titel sagt schon alles und welche Linux Distri sollte ich dafür verwenden. Übrigens die einzig ste Programmiersprache die ich kann und auch gut...
  2. Linux Foundation: Gemeinschaft im Vorstand nicht mehr erwünscht

    Linux Foundation: Gemeinschaft im Vorstand nicht mehr erwünscht: Still und heimlich hat die Linux Foundation die Regeln für Individualmitglieder geändert: Sie sind nun nicht mehr durch zwei gewählte Mitglieder...
  3. Raspbian überwachen (Systemeinbrüche)

    Raspbian überwachen (Systemeinbrüche): Hallo, ich betreibe auf einem Raspberry Pi (Model 1B) mit Raspbian (Debian) einen kleinen DL-Server. Darauf habe ich nzbget, sabnzbd und pyload...
  4. Kann meine Bandbreite nicht nutzen

    Kann meine Bandbreite nicht nutzen: Ich habe kürzlich mein Telekom-Anschluß von 2 auf 50 (Glasfaser) MBit/sec umgestellt. Mit dem Ziel Livestreams sehen zu können. Aber jetzt sehe...
  5. Mein Server Ubuntu 14.04.3 LTS versendet spam (postfix/dovecot)

    Mein Server Ubuntu 14.04.3 LTS versendet spam (postfix/dovecot): Mir wurde gerade von meinem Hoster mitgeteilt, daß mein Server bai abusix.org geblacklistet wurde. Wenn ich in die logs schaue, so sehe ich z.B.:...