Zwei Scripte, die vielleicht interessant sind...
Hinweis: Ein Beispielscript für den einfachen Fall mit nur einer OpenSim Instanz ist bereits im Tutorial.
Mein tmux Autostart-Script. Es wird beim Systemstart aufgerufen und läuft dann endlos. Wenn eine der beiden OpenSim-Instanzen abkachelt, dann wird sie spätestens nach 120 Sekunden neu gestartet. Metro wird immer ins erste Fenster gezwungen, DeReOS immer ins zweite. (Das ist wichtig, wenn ich über ein Script automatisiert OpenSim Kommandozeilenbefehle absetzen will.)
Dieses Script läuft mit dem User-Account "mareta".
Code:
#!/bin/sh
while :
do
sleep 120
# try both Metro and DeReOS and ignore error if already exists
running=`ps ax | grep OpenSim.exe | grep -v grep`
if [ -z "$running" ]
then
cd /home/mareta/metro/bin
tmux new-session -d -s term -n Metro 'env LANG=C mono OpenSim.exe'
cd /home/mareta/dereos/bin
tmux new-window -n DeReOS -t term:1 'env LANG=C mono OpenSim.exe'
else
cd /home/mareta/metro/bin
tmux new-window -n Metro -t term:0 'env LANG=C mono OpenSim.exe' 2> /dev/null
cd /home/mareta/dereos/bin
tmux new-window -n DeReOS -t term:1 'env LANG=C mono OpenSim.exe' 2> /dev/null
fi
done
Mit diesem Script kann ich ein OAR-Backup auslösen, und jeweils 3 Backups aufheben. Es kann z.B. durch einen Cronjob getriggert werden. Weil ich im obigen Script die Metro-Instanz immer ins Teminal 0 zwinge, kann ich mit "-t term:0" die richtige Instanz wählen. Die richtige Region wird dann bereits mit Hilfe der OpenSim Konsole ausgewählt.
Dieses Script läuft mit dem User-Account "root", deshalb unten zweimal "su mareta".
Code:
#!/bin/sh
# hold 3 daily oar backups
rm -f /home/mareta/metro/backup3.oar
mv -f /home/mareta/metro/backup2.oar /home/mareta/metro/backup3.oar 2> /dev/null
mv -f /home/mareta/metro/backup1.oar /home/mareta/metro/backup2.oar 2> /dev/null
# set to client region
su mareta -c 'tmux send-keys -t term:0 "change region Weihnachtsmarkt" C-m'
# trigger new OAR backup
su mareta -c 'tmux send-keys -t term:0 "save oar /home/mareta/metro/backup1.oar" C-m'
Fröhliches Bashen,
Mareta