Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
opensim linux shell script
#1
Mein neustes opensim.sh Shell Script
opensim Version 0.13.49 by Manfred Aabye
opensim.sh Basiert auf meinen Einzelscripten, an denen ich bereits 6 Jahre Arbeite und verbessere.
Da Server unterschiedlich sind, kann eine einwandfreie Funktion nicht gewährleistet werden, also bitte mit bedacht verwenden.
Die Benutzung dieses Scripts, oder deren Bestandteile, erfolgt auf eigene Gefahr!!!
Erstellt und getestet ist opensim.sh, auf verschiedenen Ubuntu 18.04 Servern, unter verschiedenen Server Anbietern (Contabo, Hetzner ...).

Es werden zusätzlich 2 Konfigurationsdateien benötigt die für den automatischen Start und stopp benötigt werden.
Diese Dateien müssen am Ende eine Leerzeile haben. Die Startreihenfolge ergibt sich aus der Aufstellung.
Die Pfade sowie Wartezeiten können im Script einfach angepasst werden.
Bitte beachtet der Verzeichnisname des OpenSimulator ist gleichzeitig der Screen Name.
Dieses Script läuft auf einem Grid mit 40 Simulatoren genauso wie mit an OsGrid angebundenen Simulatoren.
Wird kein Robust oder Money Verzeichnis gefunden, werden diese auch nicht gestartet.

   

opensim.sh
Code:
#!/bin/bash
# opensim Version 0.13.49 by Manfred Aabye
# opensim.sh Basiert auf meinen Einzelscripten, an denen ich bereits 6 Jahre Arbeite und verbessere.
# Da Server unterschiedlich sind, kann eine einwandfreie fuunktion nicht gewährleistet werden, also bitte mit bedacht verwenden.
# Die Benutzung dieses Scriptes, oder deren Bestandteile, erfolgt auf eigene Gefahr!!!
# Erstellt und getestet ist opensim.sh, auf verschiedenen Ubuntu 18.04 Servern, unter verschiedenen Server Anbietern (Contabo, Hetzner ...).

clear

echo "   ____                        _____  _                    _         _               "    
echo "  / __ \                      / ____|(_)                  | |       | |              "
echo " | |  | | _ __    ___  _ __  | (___   _  _ __ ___   _   _ | |  __ _ | |_  ___   _ __ "
echo " | |  | ||  _ \  / _ \|  _ \  \___ \ | ||  _   _ \ | | | || | / _  || __|/ _ \ |  __|"
echo " | |__| || |_) ||  __/| | | | ____) || || | | | | || |_| || || (_| || |_| (_) || |   "
echo "  \____/ |  __/  \___||_| |_||_____/ |_||_| |_| |_| \____||_| \____| \__|\___/ |_|   "
echo "         | |                                                                         "
echo "         |_|                                                                         "
echo "        Virtuelle Welten"
echo " "

### Alte Variablen loeschen von eventuellen voherigen sessions ###
unset STARTVERZEICHNIS
unset MONEYVERZEICHNIS
unset ROBUSTVERZEICHNIS
unset OPENSIMVERZEICHNIS
unset SCRIPTSOURCE
unset MONEYSOURCE

### Einstellungen ###
## Das Startverzeichnis home oder opt zum Beispiel.
STARTVERZEICHNIS="opt"
MONEYVERZEICHNIS="robust"
ROBUSTVERZEICHNIS="robust"
OPENSIMVERZEICHNIS="opensim"
SCRIPTSOURCE="ScriptNeu"
MONEYSOURCE="money48"
## Die unterschiedlichen wartezeiten bis die Aktion ausgefuehrt wurde.
WARTEZEIT=30 # Ist eine allgemeine Wartezeit.
STARTWARTEZEIT=10 # Startwartezeit ist eine Pause, damit nicht alle Simulatoren gleichzeitig starten.
STOPWARTEZEIT=30 # Stopwartezeit ist eine Pause, damit nicht alle Simulatoren gleichzeitig herunterfahren.
MONEYWARTEZEIT=50 # Moneywartezeit ist eine Extra Pause, weil dieser zwischen Robust und Simulatoren gestartet werden muss.
BACKUPWARTEZEIT=120 # Backupwartezeit ist eine Pause, damit der Server nicht ueberlastet wird.
AUTOSTOPZEIT=60 # Autostopzeit ist eine Pause, um den Simulatoren zeit zum herunterfahren gegeben wird, bevor haengende Simulatoren gekillt werden.
## Farben
# Black=0
Red=1
Green=2
Yellow=3
# Blue=4
# Magenta=5
# Cyan=6
White=7
### Einstellungen Ende ###

cd /$STARTVERZEICHNIS || exit
sleep 1
KOMMANDO=$1

### Funktion vardel, Variablen loeschen.
function vardel()
{
    unset STARTVERZEICHNIS
    unset MONEYVERZEICHNIS
    unset ROBUSTVERZEICHNIS
    unset WARTEZEIT
    unset STARTWARTEZEIT
    unset unset STOPWARTEZEIT
    unset MONEYWARTEZEIT
    unset Red
    unset Green
    unset White
}
### Erstellen eines Arrays aus einer Textdatei ###
function makeverzeichnisliste()
{
    VERZEICHNISSLISTE=()
    while IFS= read -r line; do
    VERZEICHNISSLISTE+=("$line")
    done < /$STARTVERZEICHNIS/SimulatorList.ini
    # Anzahl der Eintraege.
    ANZAHLVERZEICHNISSLISTE=${#VERZEICHNISSLISTE[*]}
}
function makeregionsliste()
{
    REGIONSLISTE=()
    while IFS= read -r line; do
    REGIONSLISTE+=("$line")
    done < /$STARTVERZEICHNIS/RegionList.ini
    # Anzahl der Eintraege.   
    ANZAHLREGIONSLISTE=${#REGIONSLISTE[*]}
}

### Funktion assetdel, Asset von der Region loeschen.
# assetdel screen_name Regionsname Objektname
function assetdel()
{
    echo "$(tput setaf $Red) $(tput setab $White)$3 Asset von der Region löschen$(tput sgr 0)"
        screen -S "$1" -p 0 -X eval "stuff 'change region ""$2""'^M" # Region wechseln
        screen -S "$1" -p 0 -X eval "stuff 'alert "Loesche: "$3" von der Region!"'^M" # Mit einer loesch Meldung
        screen -S "$1" -p 0 -X eval "stuff 'delete object name ""$3""'^M" # Objekt loeschen
        screen -S "$1" -p 0 -X eval "stuff 'y'^M" # Mit y also yes bestaetigen
}

### Funktion works, screen pruefen ob er laeuft.
# works screen_name
function works()
{
    if ! screen -list | grep -q "$1"; then
        # es laeuft nicht - not work
            echo "$(tput setaf $White)$(tput setab $Red) $1 OFFLINE! $(tput sgr 0)"
            return 1
        else
        # es laeuft - work
            echo "$(tput setaf $White)$(tput setab $Green) $1 ONLINE! $(tput sgr 0)"
            return 0
    fi
}

### Funktion checkfile, pruefen ob Datei vorhanden ist.
# checkfile "pfad/name"
# checkfile /pfad/zur/datei && echo "File exists" || echo "File not found!"
function checkfile
{
    [ -f "$1" ]
    return $?
}

### Funktion mapdel, loescht die Map-Karten.
# mapdel Verzeichnis
function mapdel()
{
    if [ -d "$1" ]; then
      echo "$(tput setaf $Red) $(tput setab $White)OpenSimulator maptile $1 geloescht$(tput sgr 0)"
      cd /$STARTVERZEICHNIS/"$1"/bin || exit
      rm -r maptiles/*
    else
      echo "$(tput setaf $Red)maptile $1 nicht gefunden $(tput sgr 0)"
    fi
}
### Funktion logdel, loescht die Log Dateien.
# logdel Verzeichnis
function logdel()
{
    if [ -d "$1" ]; then
      echo "$(tput setaf $Red) $(tput setab $White)OpenSimulator log $1 geloescht$(tput sgr 0)"
      rm /$STARTVERZEICHNIS/"$1"/bin/*.log
    else
      echo "$(tput setaf $Red)logs nicht gefunden $(tput sgr 0)"
    fi
}

### Funktion ossettings, stellt den Linux Server fuer OpenSim ein.
function ossettings()
{
    # Hier kommen alle gewünschten Einstellungen rein.
    echo "$(tput setab $Green)Setze Einstellungen! $(tput sgr 0)"
    echo "ulimit -s 1048576"
    ulimit -s 1048576
    echo "minor=split,promotion-age=14,nursery-size=64m"
    export MONO_GC_PARAMS="minor=split,promotion-age=14,nursery-size=64m"
    echo " "
}

### Funktion screenlist, Laufende Screens auflisten.
function screenlist()
{
    echo "$(tput setaf 2) Alle laufende Screens! $(tput sgr 0)"
    screen -ls
}

### Funktion osstart, startet Region Server.
# osstart screen_name
# Beispiel-Example: osstart sim1
function osstart()
{
    if [ -d "$1" ]; then
      echo "$(tput setaf 2) $(tput setab $White)Regionen OpenSimulator $1 Starten$(tput sgr 0)"
      cd /$STARTVERZEICHNIS/"$1"/bin || exit
      screen -fa -S "$1" -d -U -m mono OpenSim.exe
      sleep 10
    else
      echo "$(tput setaf $Red) $(tput setab $Yellow)Regionen OpenSimulator $1 nicht vorhanden$(tput sgr 0)"
    fi
}

### Funktion rostart, Robust Server starten.
function rostart()
{
    if checkfile /$STARTVERZEICHNIS/$ROBUSTVERZEICHNIS/bin/Robust.exe; then
      echo "$(tput setaf 2) $(tput setab $White)Robust Start$(tput sgr 0)"
      cd /$STARTVERZEICHNIS/$ROBUSTVERZEICHNIS/bin || exit
      screen -fa -S RO -d -U -m mono Robust.exe
      sleep $WARTEZEIT
    else
      echo "$(tput setaf 2)Robust wurde nicht gefunden.$(tput sgr 0)"
    fi
}

### Funktion rostop, Robust Server herunterfahren.
function rostop()
{
    if screen -list | grep -q "RO"; then
      echo "$(tput setaf $Red) $(tput setab $White)RobustServer Beenden$(tput sgr 0)"
      screen -S RO -p 0 -X eval "stuff 'shutdown'^M"
      sleep $WARTEZEIT
    else
      echo "$(tput setaf $Red) $(tput setab $White)RobustServer nicht vorhanden$(tput sgr 0)"
    fi    
}

### Funktion mostart, Money Server starten.
function mostart()
{
    if checkfile /$STARTVERZEICHNIS/$MONEYVERZEICHNIS/bin/MoneyServer.exe; then
      echo "$(tput setaf 2) $(tput setab $White)MoneyServer Start$(tput sgr 0)"
      cd /$STARTVERZEICHNIS/$MONEYVERZEICHNIS/bin || exit
      screen -fa -S MO -d -U -m mono MoneyServer.exe
      sleep $MONEYWARTEZEIT
    else
      echo "$(tput setaf 2)MoneyServer wurde nicht gefunden.$(tput sgr 0)"
    fi
}

### Funktion mostop, Money Server herunterfahren.
function mostop()
{
    if screen -list | grep -q "MO"; then
      echo "$(tput setaf $Red) $(tput setab $White)MoneyServer Beenden$(tput sgr 0)"
      screen -S MO -p 0 -X eval "stuff 'shutdown'^M"
      sleep $MONEYWARTEZEIT
    else
      echo "$(tput setaf $Red) $(tput setab $White)MoneyServer nicht vorhanden$(tput sgr 0)"
    fi    
}

### Funktion osstop, stoppt Region Server.
# Beispiel-Example: osstop sim1
function osstop()
{
    if screen -list | grep -q "$1"; then
      echo "$(tput setaf $Red) $(tput setab $White)Regionen OpenSimulator $1 Beenden$(tput sgr 0)"
      screen -S "$1" -p 0 -X eval "stuff 'shutdown'^M"
    else
      echo "$(tput setaf $Red) $(tput setab $White)Regionen OpenSimulator $1 nicht vorhanden$(tput sgr 0)"
    fi
    sleep 10
}

### Funktion osscreenstop, beendet Screeens.
# Beispiel-Example: osscreenstop sim1
function osscreenstop()
{
    if screen -list | grep -q "$1"; then
      echo "$(tput setaf $Red) $(tput setab $White)Screeen $1 Beenden$(tput sgr 0)"
      screen -S "$1" -X quit
    else
      echo "$(tput setaf $Red) $(tput setab $White)Screeen $1 nicht vorhanden$(tput sgr 0)"
    fi
    echo "No screen session found. Ist hier kein Fehler, sondern ein Beweis, das alles zuvor sauber heruntergefahren wurde."
    #echo "Exit Status: $?"
}

### Funktion gridstart, startet erst Robust und dann Money
function gridstart()
{
    if screen -list | grep -q RO; then
        echo "$(tput setaf $Red) $(tput setab $White)RobustServer läuft bereits $(tput sgr 0)"
    else
          rostart
    fi

    if screen -list | grep -q MO; then
        echo "$(tput setaf $Red) $(tput setab $White)MoneyServer läuft bereits $(tput sgr 0)"
    else
        mostart
    fi
}
### Funktion gridstop, stoppt erst Money dann Robust
function gridstop()
{
    if screen -list | grep -q MO; then
        mostop
    else
        echo "$(tput setaf $Red)MoneyServer läuft nicht $(tput sgr 0)"
    fi

    if screen -list | grep -q RO; then
        rostop
    else
        echo "$(tput setaf $Red)RobustServer läuft nicht $(tput sgr 0)"
    fi
}

### Funktion terminator
function terminator()
{
    echo "hasta la vista baby"
    killall screen
    screen -ls    
}

### Funktion compilieren, kompilieren des OpenSimulator.
function compilieren()
{
    echo "$(tput setab $Green)Bauen eines neuen OpenSimulators wird gestartet! $(tput sgr 0)"
    scriptcopy
    moneycopy
    oscompi
}

### Funktion oscompi, kompilieren des OpenSimulator.
function oscompi()
{
    echo "$(tput setab $Green)Kompilierungsvorgang startet! $(tput sgr 0)"
    # In das opensim Verzeichnis wechseln wenn es das gibt ansonsten beenden.
    cd /$STARTVERZEICHNIS/$OPENSIMVERZEICHNIS || exit
    
    echo 'Prebuildvorgang startet!'
    # runprebuild19.sh startbar machen und starten.
    chmod +x runprebuild19.sh
    ./runprebuild19.sh

    echo 'Kompilierungsvorgang startet!'
    # ohne log Datei.
    msbuild /p:Configuration=Release
    # mit log Datei.
    # msbuild /p:Configuration=Release /fileLogger /flp:logfile=opensimbuild.log /v:d
    echo " "
}

### Funktion scriptcopy, lsl ossl scripte kopieren.
function scriptcopy()
{
    echo "$(tput setab $Green)Script Assets werden kopiert! $(tput sgr 0)"
    cp -r /$STARTVERZEICHNIS/$SCRIPTSOURCE/assets /$STARTVERZEICHNIS/$OPENSIMVERZEICHNIS/bin
    cp -r /$STARTVERZEICHNIS/$SCRIPTSOURCE/inventory /$STARTVERZEICHNIS/$OPENSIMVERZEICHNIS/bin
    echo " "
}

### Funktion moneycopy, Money Dateien kopieren.
function moneycopy()
{
    echo "$(tput setab $Green)Money Kopiervorgang startet! $(tput sgr 0)"
    cp -r /$STARTVERZEICHNIS/$MONEYSOURCE/bin /$STARTVERZEICHNIS/$OPENSIMVERZEICHNIS
    cp -r /$STARTVERZEICHNIS/$MONEYSOURCE/addon-modules /$STARTVERZEICHNIS/$OPENSIMVERZEICHNIS
    echo " "
}

### Funktion osdelete
function osdelete()
{
    echo "$(tput setaf $Red) $(tput setab $White)Lösche alte opensim1 Dateien$(tput sgr 0)"
    cd /$STARTVERZEICHNIS || exit
    rm -r opensim1
    echo "$(tput setaf $Red) $(tput setab $White)Umbenennen von opensim nach opensim1 zur sicherung$(tput sgr 0)"
    mv opensim opensim1
    echo " "
}

### Funktion oscopy
function oscopy()
{
    makeverzeichnisliste
    echo "$(tput setab $Green)Kopiere Robust, Money und Simulatoren! $(tput sgr 0)"
    echo " "
    sleep 3
    #Robust
        echo "$(tput setaf $Green) $(tput setab $White)Robust und Money kopiert$(tput sgr 0)"
        cd /$STARTVERZEICHNIS/$ROBUSTVERZEICHNIS/bin || exit
        cp -r /$STARTVERZEICHNIS/$OPENSIMVERZEICHNIS/bin /$STARTVERZEICHNIS/$ROBUSTVERZEICHNIS
    #Sim
    for (( i = 0 ; i < "$ANZAHLVERZEICHNISSLISTE" ; i++)) do
        echo "$(tput setaf $Green) $(tput setab $White)OpenSimulator ${VERZEICHNISSLISTE[$i]} kopiert$(tput sgr 0)"
        cd /$STARTVERZEICHNIS/"${VERZEICHNISSLISTE[$i]}"/bin || exit
        cp -r /$STARTVERZEICHNIS/$OPENSIMVERZEICHNIS/bin /$STARTVERZEICHNIS/"${VERZEICHNISSLISTE[$i]}"
        sleep 3
    done
    echo " "
}

### Funktion osupgrade
function osupgrade()
{
    echo "$(tput setab $Green)Das Grid wird jetzt upgegradet! $(tput sgr 0)"
    echo " "
    # Grid Stoppen.
    autostop
    # Kopieren.
    oscopy
    # Grid Starten.
    autostart
}

function restore()
{    
    echo "Test gefährlich!!!"
    RESCREENNAME=$1
    REREGIONSNAME=$2
    PFADDATEINAME=$3
    screen -S "$RESCREENNAME" -p 0 -X eval "stuff 'change region ${REREGIONSNAME//\"/}'^M"
    # es muss hier geschaut werden das es nicht root ist sondern wirklich die Region sonst werden alle anderen ueberschrieben!!!
    screen -S "$RESCREENNAME" -p 0 -X eval "stuff 'load oar $PFADDATEINAME'^M"
}

### Funktion regionbackup
# regionbackup Screenname "Der Regionsname"
function regionbackup()
{
    # Backup Verzeichnis anlegen.
    mkdir -p /$STARTVERZEICHNIS/backup/

    # Datum für die Dateinamen in die Variable DATUM schreiben.
    #date +%F
    DATUM=$(date +%F)

    sleep 3

    SCREENNAME=$1
    REGIONSNAME=$2
    
    dateiname=${REGIONSNAME//\"/}
    nospace=${dateiname// /}

    echo "$(tput setaf 4) $(tput setab 7)Region $nospace speichern$(tput sgr 0)"
    cd /$STARTVERZEICHNIS/"$SCREENNAME"/bin || exit
    # Ich kann nicht pruefen ob die Region im OpenSimulator vorhanden ist.
    # Sollte sie nicht vorhanden sein wird root also alle Regionen gespeichert.
    screen -S "$SCREENNAME" -p 0 -X eval "stuff 'change region ${REGIONSNAME//\"/}'^M"
    screen -S "$SCREENNAME" -p 0 -X eval "stuff 'save oar /$STARTVERZEICHNIS/backup/'$DATUM'-$nospace.oar'^M"
    screen -S "$SCREENNAME" -p 0 -X eval "stuff 'terrain save /$STARTVERZEICHNIS/backup/'$DATUM'-$nospace.png'^M"
    screen -S "$SCREENNAME" -p 0 -X eval "stuff 'terrain save /$STARTVERZEICHNIS/backup/'$DATUM'-$nospace.raw'^M"
    echo " "
    sleep 10

    if [ ! -f /$STARTVERZEICHNIS/"$SCREENNAME"/bin/Regions/"$nospace".ini ]; then
        cp -r /$STARTVERZEICHNIS/"$SCREENNAME"/bin/Regions/Regions.ini /$STARTVERZEICHNIS/backup/"$DATUM"-"$nospace".ini
        echo "$(tput setaf 2)Regions.ini wurde als $DATUM-$nospace.ini gespeichert."
        echo "Bitte alle Regionen bis auf Region ${REGIONSNAME//\"/} aus dieser Datei entfernen.$(tput sgr 0)"
    fi

    if [ ! -f /$STARTVERZEICHNIS/"$SCREENNAME"/bin/Regions/"${REGIONSNAME//\"/}".ini ]; then
        cp -r /$STARTVERZEICHNIS/"$SCREENNAME"/bin/Regions/Regions.ini /$STARTVERZEICHNIS/backup/"$DATUM"-"$nospace".ini
        echo "$(tput setaf 2)Regions.ini wurde als $DATUM-$nospace.ini gespeichert."
        echo "Bitte alle Regionen bis auf Region ${2//\"/} aus dieser Datei entfernen.$(tput sgr 0)"
    fi

    if [ ! -f /$STARTVERZEICHNIS/"$SCREENNAME"/bin/Regions/Regions.ini ]; then
        cp -r /$STARTVERZEICHNIS/"$SCREENNAME"/bin/Regions/"$nospace".ini /$STARTVERZEICHNIS/backup/"$DATUM"-"$nospace".ini    
    fi
}

### Funktion autosimstart
function autosimstart()
{
    makeverzeichnisliste
    sleep 3
    for (( i = 0 ; i < "$ANZAHLVERZEICHNISSLISTE" ; i++)) do
        echo "$(tput setaf 2) $(tput setab $White)Regionen OpenSimulator ${VERZEICHNISSLISTE[$i]} Starten$(tput sgr 0)"
        cd /$STARTVERZEICHNIS/"${VERZEICHNISSLISTE[$i]}"/bin || exit
        screen -fa -S "${VERZEICHNISSLISTE[$i]}" -d -U -m mono OpenSim.exe
        sleep $STARTWARTEZEIT
    done
}
### Funktion autosimstop
function autosimstop()
{
    makeverzeichnisliste
    sleep 3
    for (( i = 0 ; i < "$ANZAHLVERZEICHNISSLISTE" ; i++)) do
        echo "$(tput setaf $Red) $(tput setab $White)Regionen OpenSimulator ${VERZEICHNISSLISTE[$i]} Beenden$(tput sgr 0)"
        screen -S "${VERZEICHNISSLISTE[$i]}" -p 0 -X eval "stuff 'shutdown'^M"
        sleep $STOPWARTEZEIT
    done
}
### Funktion autologdel
function autologdel()
{
    makeverzeichnisliste
    sleep 3
    for (( i = 0 ; i < "$ANZAHLVERZEICHNISSLISTE" ; i++)) do
        echo "$(tput setaf $Red) $(tput setab $White)OpenSimulator log ${VERZEICHNISSLISTE[$i]} geloescht$(tput sgr 0)"
        rm /$STARTVERZEICHNIS/"${VERZEICHNISSLISTE[$i]}"/bin/*.log
        sleep 3
    done
}
### Funktion automapdel
function automapdel()
{
    makeverzeichnisliste
    sleep 3
    for (( i = 0 ; i < "$ANZAHLVERZEICHNISSLISTE" ; i++)) do
        echo "$(tput setaf $Red) $(tput setab $White)OpenSimulator maptile ${VERZEICHNISSLISTE[$i]} geloescht$(tput sgr 0)"
        cd /$STARTVERZEICHNIS/"${VERZEICHNISSLISTE[$i]}"/bin || exit
        rm -r maptiles/*
        sleep 3
    done
}
### Funktion autoregionbackup
function autoregionbackup()
{
    makeregionsliste
    sleep 3
    for (( i = 0 ; i < "$ANZAHLREGIONSLISTE" ; i++)) do
        derscreen=$(echo "${REGIONSLISTE[$i]}" | cut -d ' ' -f 1)
        dieregion=$(echo "${REGIONSLISTE[$i]}" | cut -d ' ' -f 2)
        regionbackup "$derscreen" "$dieregion"
        sleep $BACKUPWARTEZEIT
    done
}
### Funktion autoscreenstop
function autoscreenstop()
{
    makeverzeichnisliste
    sleep 3
    for (( i = 0 ; i < "$ANZAHLVERZEICHNISSLISTE" ; i++)) do
        screen -S "${VERZEICHNISSLISTE[$i]}" -X quit
    done
    screen -S MO -X quit
    screen -S RO -X quit
}

### Funktion autostart
function autostart()
{
    ossettings
    echo "$(tput setab $Green)Starte das Grid! $(tput sgr 0)"
    echo " "    
    gridstart
    autosimstart
    echo " "
    screenlist
    echo " "
}
### Funktion autostop
function autostop()
{
    echo "$(tput setab 1)Stoppe alles! $(tput sgr 0)"
    autosimstop
    gridstop
    echo "$AUTOSTOPZEIT Sekunden warten bis die Simulatoren heruntergefahren sind!"
    sleep $AUTOSTOPZEIT
    echo " "
    echo "$(tput setab 1)Beende alle noch offenen Screens! $(tput sgr 0)"
    autoscreenstop
    echo " "
    screenlist
    echo " "
}
### Funktion autorestart
function autorestart()
{
    echo "$(tput setab 1)Stoppe alles! $(tput sgr 0)"
    autosimstop
    gridstop
    echo "60 Sekunden warten bis die Simulatoren heruntergefahren sind!"
    sleep 60
    echo " "
    echo "$(tput setab 1)Beende alle noch offenen Screens! $(tput sgr 0)"
    autoscreenstop
    echo " "
    echo "$(tput setab 1)Log Dateinen löschen! $(tput sgr 0)"
    autologdel
    echo " "
    echo "$(tput setab $Green)Einstellungen setzen! $(tput sgr 0)"
    ossettings
    echo " "
    echo "$(tput setab $Green)Starte alles! $(tput sgr 0)"
    gridstart
    autosimstart
    echo " "
    screenlist
    echo " "
}

### Funktion hilfe
function hilfe()
{
echo "$(tput setab $Green)Funktion:        Parameter:        Informationen: $(tput sgr 0)"
echo "hilfe             - hat keine Parameter - Diese Hilfe."
echo "restart         - hat keine Parameter - Startet das gesammte Grid neu."
echo "autostop         - hat keine Parameter - Stoppt das gesammte Grid."
echo "autostart         - hat keine Parameter - Startet das gesammte Grid."
echo "works             - Verzeichnisname - Einzelne screens auf Existens prüfen."
echo "$(tput setab $Yellow)Erweiterte Funktionen$(tput sgr 0)"
echo "rostart         - hat keine Parameter - Startet Robust Server."
echo "rostop             - hat keine Parameter - Stoppt Robust Server."
echo "mostart         - hat keine Parameter - Startet Money Server."
echo "mostop             - hat keine Parameter - Stoppt Money Server."
echo "osstart         - Verzeichnisname - Startet einzelnen Simulator."
echo "osstop             - Verzeichnisname - Stoppt einzelnen Simulator."
echo "terminator         - hat keine Parameter - Killt alle laufenden Screens."
echo "autoscreenstop        - hat keine Parameter - Killt alle OpenSim Screens."
echo "autosimstart         - hat keine Parameter - Startet alle Regionen."
echo "autosimstop         - hat keine Parameter - Beendet alle Regionen. "
echo "gridstart         - hat keine Parameter - Startet Robust und Money. "
echo "gridstop         - hat keine Parameter - Beendet Robust und Money. "
echo "$(tput setab 1)Experten Funktionen$(tput sgr 0)"
echo "assetdel         - screen_name Regionsname Objektname - Einzelnes Asset löschen."
echo "autologdel        - hat keine Parameter - Löscht alle Log Dateien."
echo "automapdel        - hat keine Parameter - Löscht alle Map Karten."
echo "logdel             - Verzeichnisname - Löscht einzelne Simulator Log Dateien."
echo "mapdel             - Verzeichnisname - Löscht einzelne Simulator Map-Karten."
echo "settings         - hat keine Parameter - setzt Linux Einstellungen."
echo "osupgrade         - hat keine Parameter - Installiert eine neue OpenSim Version."
echo "regionbackup         - Verzeichnisname Regionsname - Backup einer ausgewählten Region."
echo "autoregionbackup    - hat keine Parameter - Backup aller Regionen."
echo "oscopy            - Verzeichnisname - Kopiert den Simulator."
echo "compilieren         - hat keine Parameter - Kopiert fehlende Dateien und Kompiliert."
echo "scriptcopy         - hat keine Parameter - Kopiert die Scripte in den Source."
echo "moneycopy         - hat keine Parameter - Kopiert das Money in den Source."
echo "osdelete         - hat keine Parameter - Löscht alte OpenSim Version."
echo "oscompi         - hat keine Parameter - Kompiliert einen neuen OpenSimulator."
}

### Eingabeauswertung:
case  $KOMMANDO  in
    r | restart) autorestart ;;
    sta | autosimstart | simstart) autosimstart ;;
    sto | autosimstop | simstop) autosimstop ;;
    astart | autostart | start) autotart ;;
    astop | autostop | stop) autostop ;;
    amd | automapdel) automapdel ;;
    ald | autologdel) autologdel ;;
    settings)    ossettings ;;
    rs | robuststart | rostart) rostart ;;
    ms | moneystart | mostart) mostart ;;
    rsto | robuststop | rostop) rostop ;;
    mstop | moneystop | mostop) mostop ;;
    osstop) osstop "$2" ;;
    osstart) osstart "$2" ;;
    gridstart) gridstart ;;
    gridstop) gridstop ;;
    sd | screendel)    autoscreenstop ;;
    l | list) screenlist ;;
    w | works) works "$2" ;;
    md | mapdel) mapdel "$2" ;;
    ld | logdel) logdel "$2" ;;
    ss | osscreenstop) osscreenstop "$2" ;;
    h | hilfe | help) hilfe ;;
    asdel | assetdel) assetdel "$2" "$3" "$4" ;;
    e | terminator) terminator ;;
    osupgrade) osupgrade ;;
    oscopy) oscopy ;;
    regionbackup) regionbackup "$2" "$3" ;;
    autoregionbackup) autoregionbackup ;;
    compilieren) compilieren ;;
    scriptcopy) scriptcopy ;;
    moneycopy) moneycopy ;;
    oscompi) oscompi ;;
    osdelete) osdelete ;;
    *) hilfe ;;
esac

vardel
SimulatorList.ini (Beispiel)
Code:
sim1
sim2
sim3
sim4
sim5
sim6
sim7
sim8
sim9
RegionList.ini (Beispiel)
Code:
sim1 "Welcome"
sim2 "Region1"
sim2 "Region2"
sim3 "Region3"
sim3 "Region4"
sim4 "Region5"
sim4 "Region6"
sim5 "Region7"
sim5 "Region8"
sim6 "City1"
sim6 "City2"
sim6 "City3"
sim6 "City4"
sim6 "City5"
sim6 "City6"
sim6 "City7"
sim6 "City8"
sim6 "City9"
sim7 "Sandbox"
sim7 "Region9"


Angehängte Dateien
.zip   opensim.zip (Größe: 5.26 KB / Downloads: 19)
- Beipackzettel: Kann Spuren von persönlichen Meinungen, Sarkasmus und Ironie enthalten.
Ausdrücke sind nicht für den Verkehr geeignet. Gelesen mindestens haltbar, siehe oben. -
Antworten
#2
   

Das neue Aktuelle opensim.sh Script bekommt man jetzt auf Github.
Hier:  https://github.com/BigManzai/OpenSim-Shell-Script

   

Beispiel:

Ich gehe davon aus das sie das Verzeichnis für Optionale Software (/opt) nutzen.
Holen sie sich die aktuelle OpenSim Master Version.
Hier:  http://opensimulator.org/viewgit/?a=shortlog&p=opensim
Entpacken und umbenennen in opensim.

Kompilieren sie diesen mit:
/opt/opensim.sh oscompi

Ein Grid aufbauen unter Ubuntu Server 18.04 geht jetzt sehr schnell Beispiel:
/opt/opensim.sh osstruktur 1 10
Dies erstellt 11 Verzeichnisse robust und sim1 bis sim10 sowie die ausgefüllte SimulatorList.ini.

Möchten sie an ein bestehendes Grid anbinden, dann benötigen sie das Verzeichnis robust nicht, dies können sie einfach löschen.

Machen sie nun Voreinstellungen der Konfigurationen wie in der OpenSim Wiki beschrieben, die für alle Simulatoren gelten.

Jetzt kopieren sie diesen OpenSimulator in alle Verzeichnisse mit folgendem Befehl:
/opt/opensim.sh oscopy
Passen Sie nun alle Datenbanken und die Ports an und erstellen sie wie gewünscht Regions.ini Dateien.

Starten sie nun ihr neues Grid mit:
/opt/opensim.sh osstart

Nachdem sie alles überprüft haben machen sie noch einen letzten neustart.
/opt/opensim.sh restart

Einen Retstart jeden Morgen um 6 Uhr stellen sie wie folgt ein:
crontab -e
Auswahl erster Editor mit 1

Ganz unten in der angezeigten Datei hängen sie folgendes an:
# Start um 6 Uhr
0 6 * * * /opt/opensim.sh restart



Jetzt das ganze speichern:
STRG o
Dateinamen mit Return bestätigen
STRG x zum beenden

Diese Crontab Datei anzeigen zum überprüfen:
crontab -l
- Beipackzettel: Kann Spuren von persönlichen Meinungen, Sarkasmus und Ironie enthalten.
Ausdrücke sind nicht für den Verkehr geeignet. Gelesen mindestens haltbar, siehe oben. -
Antworten
#3
Upgrade: opensimMULTITOOL, Shell Script Version 0.27.56
https://github.com/BigManzai/OpenSim-Shell-Script
Tiefer, Breiter, Schneller Wink
- Beipackzettel: Kann Spuren von persönlichen Meinungen, Sarkasmus und Ironie enthalten.
Ausdrücke sind nicht für den Verkehr geeignet. Gelesen mindestens haltbar, siehe oben. -
[-] The following 1 user says Thank You to Manni for this post:
  • Achim (05-22-2021)
Antworten
#4
opensimMULTITOOL, Shell Script Version 0.32.77

opensim.sh Basiert auf meinen Einzelscripten, an denen ich bereits 6 Jahre Arbeite und verbessere.
Da Server unterschiedlich sind, kann eine einwandfreie Funktion nicht gewährleistet werden, also bitte mit bedacht verwenden.
Die Benutzung dieses Scripts, oder deren Bestandteile, erfolgt auf eigene Gefahr!!!
Erstellt und getestet ist opensim.sh, auf verschiedenen Ubuntu 18.04 Servern, unter verschiedenen Server Anbietern (Contabo, Hetzner etc.).
Dieses Script läuft auf einem Grid mit 40 Simulatoren genauso, wie mit zum Beispiel OsGrid angebundenen Simulatoren.
Es wird automatisch eine DATUM-multitool.log angelegt um nachzuverfolgen ob alles ordnungsgemäß ausgeführt wurde.
Konfiguration
In der opensim.cnf werden unter anderem Verzeichnispfade voreingestellt zum Beispiel home oder opt als Hauptverzeichnis.
Das Neuerstellen über "opensim.sh osstruktur" wird nicht nur die Struktur für ein Grid erstellt sondern auch die SimulatorList.ini.
Diese Dateien müssen am Ende eine Leerzeile haben. Die Startreihenfolge ergibt sich aus der Aufstellung.
Bitte beachtet der Verzeichnisname des OpenSimulator ist gleichzeitig der Screen Name.
Wird kein Robust oder Money Verzeichnis gefunden, werden diese auch nicht gestartet.
In dieser Anleitung gehe ich von folgender Konstellation aus Grid mit Robust Server, Money Server und eine Region im Verzeichnis sim1 mit dem Namen Welcome.
Die Befehle können entweder direkt im Verzeichnis opt mit ./opensim.sh oder aber mit dem Verzeichnispfad /opt/opensim.sh aufgerufen werden.

DOWNLOAD: https://github.com/BigManzai/OpenSim-Shell-Script

hilfe - hat keine Parameter
Eine einfache Hilfe als Übersicht.
Beispiel: /opt/opensim.sh oder /opt/opensim.sh hilfe

restart - hat keine Parameter
Startet das gesamte Grid neu.
Beispiel: /opt/opensim.sh restart oder /opt/opensim.sh r

autostop - hat keine Parameter
Stoppt das gesamte Grid.
Beispiel: /opt/opensim.sh autostop

autostart - hat keine Parameter
Startet das gesamte Grid.
Beispiel: /opt/opensim.sh autostart

works - Verzeichnisname
Einzelne screens auf Existenz prüfen.
Beispiel: /opt/opensim.sh works sim1

osstart - Verzeichnisname
Startet einen einzelnen Simulator.
Beispiel: /opt/opensim.sh osstart sim1

osstop - Verzeichnisname
Stoppt einen einzelnen Simulator.
Beispiel: /opt/opensim.sh

meineregionen - hat keine Parameter
listet alle Regionen aus den Konfigurationen auf.
Beispiel: /opt/opensim.sh meineregionen

autologdel - hat keine Parameter
Löscht alle Log Dateien.
Beispiel: /opt/opensim.sh autologdel

automapdel - hat keine Parameter
Löscht alle Map Karten.
Beispiel: /opt/opensim.sh automapdel

### Erweiterte Funktionen

regionbackup - Verzeichnisname Regionsname
Backup einer ausgewählten Region.
Beispiel: /opt/opensim.sh regionbackup sim1 Welcome

assetdel - screen_name Regionsname Objektname
Einzelnes Asset löschen.
Beispiel: /opt/opensim.sh assetdel sim1 Welcome Object

oscommand - Verzeichnisname Region Konsolenbefehl Parameter
Konsolenbefehl senden.
Beispiel: /opt/opensim.sh oscommand sim1 Welcome alert “Hallo Welt“

gridstart - hat keine Parameter
Startet Robust und den MoneyServer.
Beispiel: /opt/opensim.sh gridstart

gridstop  - hat keine Parameter
Beendet Robust und den MoneyServer.
Beispiel: /opt/opensim.sh gridstop

rostart - hat keine Parameter
Startet Robust Server.
Beispiel: /opt/opensim.sh rostart

rostop - hat keine Parameter
Stoppt Robust Server.
Beispiel: /opt/opensim.sh rostop

mostart  - hat keine Parameter
Startet Money Server.
Beispiel: /opt/opensim.sh mostart

mostop - hat keine Parameter
Stoppt Money Server.
Beispiel: /opt/opensim.sh mostop

autosimstart - hat keine Parameter
Startet alle Regionen.
Beispiel: /opt/opensim.sh autosimstart

autosimstop - hat keine Parameter
Beendet alle Regionen.
Beispiel: /opt/opensim.sh autosimstop

autoscreenstop - hat keine Parameter
Killt alle OpenSim Screens.
Beispiel: /opt/opensim.sh autoscreenstop

logdel – Verzeichnisname
Löscht alle Simulator Log Dateien im Verzeichnis.
Beispiel: /opt/opensim.sh logdel

mapdel – Verzeichnisname
Löscht alle Simulator Map-Karten im Verzeichnis.
Beispiel: /opt/opensim.sh mapdel

settings - hat keine Parameter
setzt Linux Einstellungen.
Beispiel: /opt/opensim.sh settings

configlesen – Verzeichnisname
Alle Regionskonfigurationen im Verzeichnis anzeigen.
Beispiel: /opt/opensim.sh configlesen

### Experten Funktionen

osupgrade - hat keine Parameter
Installiert eine neue OpenSim Version.
Beispiel: /opt/opensim.sh osupgrade

autoregionbackup - hat keine Parameter
Backup aller Regionen.
Beispiel: /opt/opensim.sh autoregionbackup

oscopy – Verzeichnisname
Kopiert den Simulator aus dem Verzeichnis opensim.
Beispiel: /opt/opensim.sh oscopy sim1

osstruktur - ersteSIM letzteSIM
Legt eine Verzeichnisstruktur an.
Beispiel: /opt/opensim.sh osstruktur 1 5 # hier: robust und sim1-5

osprebuild – Versionsnummer
Aendert die Versionseinstellungen 0.9.2.XXXX
Beispiel: /opt/opensim.sh osprebuild 1160

compilieren - hat keine Parameter
Kopiert fehlende Dateien und Kompiliert.
Beispiel: /opt/opensim.sh compilieren

oscompi - hat keine Parameter
Kompiliert einen neuen OpenSimulator ohne vorher Scripte oder MoneyServer zu kopieren.
Beispiel: /opt/opensim.sh oscompi

scriptcopy - hat keine Parameter
Kopiert die Scripte in den Source.
Beispiel: /opt/opensim.sh scriptcopy

moneycopy - hat keine Parameter
Kopiert Money Source in den OpenSimulator Source.
Beispiel: /opt/opensim.sh moneycopy

osdelete - hat keine Parameter
Löscht alte OpenSim Version.
Beispiel: /opt/opensim.sh osdelete

regionsiniteilen - Verzeichnisname Region
kopiert aus der Regions.ini eine Region heraus.
Beispiel: /opt/opensim.sh regionsiniteilen sim1 Welcome

autoregionsiniteilen - hat keine Parameter
aus allen Regions.ini alle Regionen vereinzeln.
Beispiel: /opt/opensim.sh autoregionsiniteilen

RegionListe - hat keine Parameter
Die RegionList.ini erstellen.
Beispiel: /opt/opensim.sh RegionListe

Regionsdateiliste - -b Bildschirm oder -d Datei – Verzeichnisname
Regionsdateiliste erstellen.
Beispiel: /opt/opensim.sh Regionsdateiliste -b sim1

osgitholen - hat keine Parameter
kopiert eine OpenSimulator Git Entwicklerversion und speichert sie im Verzeichnis /opt.
Beispiel: /opt/opensim.sh osgitholen

terminator  - hat keine Parameter
Killt alle laufenden Screens.
Beispiel: /opt/opensim.sh terminator
- Beipackzettel: Kann Spuren von persönlichen Meinungen, Sarkasmus und Ironie enthalten.
Ausdrücke sind nicht für den Verkehr geeignet. Gelesen mindestens haltbar, siehe oben. -
Antworten


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste