Installationen und Serverstart per Batch/BASH Script
Hier ein kleiner Einstieg in die Scripting Welt
Normalerweise können wir alle Befehle in der Reihenfolge wie wir sie eingeben würden
in einer Datei speichern (Script) und später mit einem Befehl oder Klick starten.
Das spart nicht nur Zeit und Arbeit sondern bringt noch mehr Vorteile mit sich.
Beispielsweise können wir so ein Script:
- An jeder Stelle pausieren.
- Automatisch zu Ereignissen oder Zeiten starten lassen.
- In einer Endlosschleife ewig laufen lassen.
- Oder sogar intelligente Scripte erstellen die auf Ereignisse reagieren
(Zeit/Datum/Dateien existieren...).
- Und vieles mehr.
Dabei gilt:
- Ein Befehl pro Zeile (außer bei Abfragen/Schleifen).
- Das Script wird von oben nach unten abgearbeitet außer wir verwenden einen "Sprung" Befehl.
- Aufpassen das Script läuft von alleine egal was passiert also vorher alles gedanklich durchspielen!
- Beenden Notfalls mit Strg+C
Linux (BASH Script)
Dateiendung .sh
!Damit unser Script starten kann müssen wir chmod u+x script.sh ausführen.
x steht für Ausführungsrechte, r wäre dann Leserechte und w Schreibrechte.
Die Unix Bash ist sehr umfangreich deswegen sehen wir hier nur wenige Auszüge davon.
Ein Bash Script sollte in der Regel mit folgender Zeile beginnen:
#!/bin/bash
Damit Bestimmen wir das unser Script von /bin/bash ausgeführt wird,
nicht notwendig aber vermeidet Fehler!
Und endet mit:
exit 0
Falls unser Script von einem anderen Script/Programm gestartet wurde,
erhält dieses so den Rückgabewert true also erfolgreich ausgeführt.
Ein paar Bash Befehle:
#text ein Kommentar der zwar im Script steht aber nicht beachtet wird. read var erwartet eine Text Eingabe und speichert den eingegebenen Text in einer Variable $var dialog --clear --inputbox "Titel Text" 10 60 2> input.txt Konsolen-grafisches Texteingabefeld, speichert die Eingabe in input.txt. clear Bildschirm löschen. sleep hält das Script für eine Zeit in Sekunden an .
Beispiele:
If Abfrage
if test -f data.txt
then
cp data.txt ~/home/user/test
else
echo "Datei existiert nicht"
fi
While Schleife
#!/bin/sh
while Bedingung
do
Befehle
done
Windows (Batch Script)
Dateiendung .bat oder .cmd
Ein Batch Script startet in der Regel mit der Zeile:
@echo off
Dieser Befehl sorgt dafür das Pfade ausgeblendet werden und alles Übersichtlich bleibt.
Das Script beenden wir mit:
exit
Wichtige Befehle für Batchdateien:
rem Kommentare es steht nur in der Datei und wird nicht verarbeitet. pause Pausiert die Batch Datei und meldet: Drücken Sie eine beliebige Taste ... goto Springt zu einer bestimmten Stelle in einer Batch Datei. exit Beendet die Batchdatei. echo Zeigt Text in der Konsole an. echo text > datei.txt Speichert Text an den Anfang in einer Datei. echo text >> datei.txt Fügt Text an das Ende einer Datei ein. call Ruft ein anderes Programm auf, und hält das Script an bis das Programm beendet ist. cls Bildschirminhalt leeren. color Ändert die Farbe von Schrift und oder Hintergrund. TITLE Text der oben in der Leiste eingeblendet wird. mode con:cols=90 lines=40 Ändert die Größe von dem Fenster.
Beispiele:
Gelegentlich kommt es vor, da stürzt uns das Serverprogramm einfach ab.
Dies kann viele Gründe haben... So könnte ein kleiner Aufpasser aussehen der den Server nach Absturz neu startet. start /wait verhält sich ähnlich wie call der Rest dahinter ist der normale Startbefehl.
@echo off
cls
echo Server Wachhund Aktiv!
:anfang
echo (%time%) Server startet jetzt.
start /wait srcds.exe -console -game garrysmod +map gm_construct +maxplayers 16
echo (%time%) Achtung Servercrash!!!
goto anfang
Eine sinnlose endlos Schleife die CPU Auslastung wird steigen da der echo Befehl schnell ausgeführt ist.
Anders wäre es wenn wir stattdessen ein Programm ausführen würden das eine gewisse Zeit arbeitet oder
den Befehl Pause verwenden.
@echo off
:start
echo hallo
goto start
Ein kleines Menü so kann das Script verschiedene Aufgaben erfüllen und der Benutzer muss wählen.
@echo off
:menu
echo ##################
echo # Ein Batch Menu #
echo ##################
set /P wahl=##Bitte waehlen##
if /i "%wahl%"=="a" goto:verbinden
if /i "%wahl%"=="b" goto:trennen
echo Falsche Auswahl!
goto:menu
:verbinden
echo verbinden
exit
:trennen
echo trennen
exit
Eine IF Abfrage, %COMPUTERNAME% ist eine so genannte Umgebungsvariable.
Das sind vordefinierte Variablen die z.B. Pfad zum Programme Ordner,
temp Ordner oder den Namen des Benutzer enthalten.
@echo off
IF "%COMPUTERNAME%" == "SERVER1" goto START
goto WEITER
:START
echo der computername ist SERVER1
Pause
goto END
:WEITER
echo Falscher Name
Pause
goto END
:END
echo Script Ende
exit
Benoten Sie diese Anleitung
1 |
2 |
3 |
4 |
5 Stern(e)
Benotung nur 1x Täglich möglich!