Sie sind nicht angemeldet.

DeaD_EyE

Administrator

  • »DeaD_EyE« ist der Autor dieses Themas

Beiträge: 3 980

Wohnort: Hagen

Beruf: Mechatroniker (didaktische Systeme)

Rootserver vorhanden: Nein

  • Nachricht senden

1

Montag, 15. April 2013, 17:12

Script um CS:S zu CS:S_Pipe zu konvertieren

Da ich für einen Provider ein Script geschrieben habe, dass all seine CS:S-Server auf die neue Steam-Pipe-Version konvertiert, wollte ich das auch der restlichen Community nicht vorenthalten.
Ich hoffe mal, dass ich nichts wichtiges vergessen habe.


Spoiler Spoiler

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/bin/sh

customserver="`pwd`"
filelisturl="http://downloads.sourceserver.info/tools/steampipe/css/convert/css.filelist.0"
exclude="motd.txt mapcycle.txt maplist.txt server.cfg autoexec.cfg"

###################################################################
liste=   #leer lassen
for datei in $exclude; do
  if [ -z "$liste" ]; then
    liste="$(echo "$datei" | sed 's/\./\\./g')"
  else
    liste="$liste$(echo "|$datei" | sed 's/\./\\./g')"
    fi
done

#Alte Dateien löschen
echo "Serverdateien werden gelöscht"
wget -q "$filelisturl" -O- | egrep -Zzv "$liste" | xargs -0 rm 2>/dev/null
echo "Lösche *.ztmp"
find -type f -name '*.ztmp' -delete
echo "Lösche Logdateien"
find -type f -name '*.log' -delete
echo "Lösche leere Verzeichnisse"
find -type d -empty -delete

#hldsupdatetool löschen
echo "Lösche Reste des HldsUpdatetools"
rm -f hldsupdatetool.bin readme.txt steam steam.1 test1.so test2.so test3.so

#Neue Struktur anlegen
echo "Erstelle Verzeichnis cstrike/custom/kunde"
mkdir -p cstrike/custom/kunde

#Dateien und Verzeichnisse verschieben
echo "Verschiebe addons nach cstrike/addons"
mv css/cstrike/addons cstrike/
echo "Verschiebe Configdateien nach cstrike/cfg"
mv css/cstrike/cfg cstrike/
echo "Verschiebe mapcycle.txt, maplist.txt und motd.txt nach cstrike/"
mv css/cstrike/mapcycle.txt css/cstrike/maplist.txt css/cstrike/motd.txt cstrike/

#Content verschieben
echo "Verschiebe die Verzeichnisse maps, materials, models, particles, resource, scripts, sound nach cstrike/custom/kunde/"
mv css/cstrike/maps css/cstrike/materials css/cstrike/models css/cstrike/particles css/cstrike/resource css/cstrike/scripts css/cstrike/sound cstrike/custom/kunde/

#Verschiebe Demos
mv css/cstrike/*.dem cstrike/

if pwd | grep -q '[A-Z]'; then
	echo "Der Pfad $customserver beinhaltet Großbuchstaben. Ein Bug führt dazu, dass Verzeichnisse innerhalb cstrike/custom nicht durchsucht werden"
fi

#Fix für mm:s-plugins:
if [ ! -z "$(find cstrike/addons/metamod/ -maxdepth 1 -mindepth 1 -type f -name '*.vdf' 2>/dev/null)" ]; then 
	echo "Workaround für MM:S-Plugins"
	awk '/file/ {print $2}' cstrike/addons/metamod/*.vdf | tr -d '"' >> cstrike/addons/metamod/metaplugins.ini	
fi

#Konvertierung abgeschlossen
#echo "Lösche das Verzeichnis css"
#rm -r css

#Ab hier das Update einspielen
#kopieren oder steamcmd/bzw. updatetool nutzen


Folgendes ist zu beachten:
  • Das Script muss im Installationsverzeichnis des Servers ausgeführt werden. Wenn der Pfad zur srcds_run wie folgt ist: /home/server123/dust2/css/srcds_run
    Muss das Script in /home/server123/dust2/ ausgeführt werden
  • Danach das neue Update installieren


Das Script kann z.B. auch direkt heruntergeladen und ausgeführt werden. Wenn der Installationsort des Servers /home/server123/dust2 ist, müsste man das Script so ausführen:

Quellcode

1
2
cd /home/server123/dust2
wget -q http://downloads.sourceserver.info/tools/steampipe/css/convert/css_pipe.sh -O- | /bin/bash


Sollten jemanden noch Fehler auffallen, dann bitte via PN oder hier im Topic Bescheid geben. Bis zum 16. ist nicht mehr lange.
Ich gehe mal von aus, dass das Zwangsupdate um 19 - 20 Uhr (Lokalzeit) kommen wird.

Mir sind noch folgende Sachen bei einem Test aufgefallen:

  • Wenn irgendein teil des Pfades zum Gameserver Großbuchstaben beinhaltet, wird das Verzeichnis cstrike/custom nicht durchsucht. Abhelfen kann man sich z.B. mit Symlinks oder man benennt das Verzeichnis später einfach um
  • MM:S, egal welche Version, durchsucht zur Zeit nicht das Verzeichnis addons/metamod nach vdf-Dateien. Folglich wird SourceMod auch nicht geladen. Das Script sucht nach den Dateien und fügt die Pade der gefundenen Plugins zur metaplugins.ini hinzu. Sollte später ein Update für MM:S erscheinen, dass uns diese Funktionalität der MM:S-VDF-Dateien zurückbringt, sollte man die Pfade zu den Plugins aus der metaplugins.ini löschen, da ansonsten Plugins doppelt geladen werden könnten.
  • Das Plugin DAF funktioniert nicht mit der CS:S-Pipe-Version
  • Einige andere Plugins werden wahrscheinlich auch ein Update benötigen

General_V

Super Moderator

Beiträge: 1 043

Wohnort: Mönchengladbach

Beruf: Brückenkranführer / Staplerfahrer

Rootserver vorhanden: Nein

  • Nachricht senden

2

Montag, 15. April 2013, 17:53

Wie sieht das mit dem Fast Download aus, dort muss der Pfad auch angepasst werden oder ?(

DeaD_EyE

Administrator

  • »DeaD_EyE« ist der Autor dieses Themas

Beiträge: 3 980

Wohnort: Hagen

Beruf: Mechatroniker (didaktische Systeme)

Rootserver vorhanden: Nein

  • Nachricht senden

3

Montag, 15. April 2013, 18:00

Nein, der FastDL muss wie immer auf das Verzeichnis zeigen, in dem maps, materials usw. sind.
Dabei ist es egal, wie der Pfad der URL aussieht. Ich habs zwar nicht selbst getestet, aber ich meine das auch in der HLDS-Mailing-List gelesen zu haben.
Du musst dir vorstellen, dass der Server die Unterverzeichnisse in cstrike/custom als sein eigenes Wurzelverzeichnis sieht. Fraglich ist nur, was mit doppelt vorhandenen Dateien passieren würde. Wahrscheinlich hat daran kein Mensch von Valve gedacht :-D

NacKteOmA

Fortgeschrittener

Beiträge: 252

Wohnort: Düsseldorf

Beruf: Fachinformatiker Systemintegration

Rootserver vorhanden: Ja

  • Nachricht senden

4

Montag, 15. April 2013, 22:37

Spoiler Spoiler

Serverdateien werden gelöscht
Lösche *.ztmp
Lösche Logdateien
Lösche leere Verzeichnisse
Lösche Reste des HldsUpdatetools
Erstelle Verzeichnis cstrike/custom/kunde
Verschiebe addons nach cstrike/addons
Verschiebe Configdateien nach cstrike/cfg
Verschiebe mapcycle.txt, maplist.txt und motd.txt nach cstrike/
Verschiebe die Verzeichnisse maps, materials, models, particles, resource, scripts, sound nach cstrike/custom/kunde/
mv: der Aufruf von stat für âcss/cstrike/modelsâ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
mv: der Aufruf von stat für âcss/cstrike/particlesâ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
mv: der Aufruf von stat für âcss/cstrike/resourceâ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
mv: der Aufruf von stat für âcss/cstrike/scriptsâ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
mv: der Aufruf von stat für âcss/cstrike/*.demâ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
Der Pfad /home/gs/css06 beinhaltet GroÃbuchstaben. Ein Bug führt dazu, dass Verzeichnisse innerhalb cstrike/custom nicht durchsucht werden
Workaround für MM:S-Plugins


Hmmm obwohl dort defintiv nix groß ist..... :keinahn:

Finde momentan auch nirgends die models Ordner oder so, wo würde ich die im neuen "schema" theoretisch finden ?

EDIT: in cstrike/custom/kunde/materials wars dann zu finden und sieht OK aus - scheint wohl nen Fehlalarm zu sein.

Achja, vorher ggfs. nen Backup machen ;)


THX an DeaD_EyE :lovu:

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »NacKteOmA« (15. April 2013, 22:57)


5

Montag, 15. April 2013, 23:36

Spoiler Spoiler

Serverdateien werden gelöscht
Lösche *.ztmp
Lösche Logdateien
Lösche leere Verzeichnisse
Lösche Reste des HldsUpdatetools
Erstelle Verzeichnis cstrike/custom/kunde
Verschiebe addons nach cstrike/addons
Verschiebe Configdateien nach cstrike/cfg
Verschiebe mapcycle.txt, maplist.txt und motd.txt nach cstrike/
Verschiebe die Verzeichnisse maps, materials, models, particles, resource, scripts, sound nach cstrike/custom/kunde/
mv: der Aufruf von stat für âcss/cstrike/modelsâ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
mv: der Aufruf von stat für âcss/cstrike/particlesâ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
mv: der Aufruf von stat für âcss/cstrike/resourceâ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
mv: der Aufruf von stat für âcss/cstrike/scriptsâ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
mv: der Aufruf von stat für âcss/cstrike/*.demâ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
Der Pfad /home/gs/css06 beinhaltet GroÃbuchstaben. Ein Bug führt dazu, dass Verzeichnisse innerhalb cstrike/custom nicht durchsucht werden
Workaround für MM:S-Plugins

Hmmm obwohl dort defintiv nix groß ist..... :keinahn:

Finde momentan auch nirgends die models Ordner oder so, wo würde ich die im neuen "schema" theoretisch finden ?

EDIT: in cstrike/custom/kunde/materials wars dann zu finden und sieht OK aus - scheint wohl nen Fehlalarm zu sein.

Achja, vorher ggfs. nen Backup machen ;)


THX an DeaD_EyE :lovu:

Hab das gleiche "Problem". Aber es wurde alles wie es soll verschoben/gelöscht.

Hätte noch eine Idee: Man könnte noch prüfen ob irgendwo *.bz2 Archive vorhanden sind damit die auch gelöscht werden und halt ne Backup Funktion wie es NacKteOmA schon schrieb.

NacKteOmA

Fortgeschrittener

Beiträge: 252

Wohnort: Düsseldorf

Beruf: Fachinformatiker Systemintegration

Rootserver vorhanden: Ja

  • Nachricht senden

6

Dienstag, 16. April 2013, 00:18

Naja das muss das Script nicht machen also nen Backup. Bei nen kurzen Blick übers Script war mir ein vorheriges Backup machen (händisch) sicherer, zumindest nochmal extra Lokal - damit nicht nachher 200-300 GIG erstmal wieder durch ne 100mbit Leitung gepresst werden müssen (dauert dann mal eben auch ein paar Stunden).

UND generell Backups zu haben ist, ich denke das muss man nicht wieder erörtern ;)

P.S.: Für Technisch nicht so wervierste - JA diese sollte man Grundsätzlich haben und wenns zur not nur einmal Wöchentlich die Config-Sicherungen auf den eigenen PC sind.


DeaD_EyE

Administrator

  • »DeaD_EyE« ist der Autor dieses Themas

Beiträge: 3 980

Wohnort: Hagen

Beruf: Mechatroniker (didaktische Systeme)

Rootserver vorhanden: Nein

  • Nachricht senden

7

Dienstag, 16. April 2013, 17:02

Quellcode

1
2
3
if pwd | grep -q '[A-Z]*'; then
	echo "Der Pfad $customserver beinhaltet Großbuchstaben. Ein Bug führt dazu, dass Verzeichnisse innerhalb cstrike/custom nicht durchsucht werden"
fi


Falscher regex. Sollte so aussehen:

Quellcode

1
2
3
if pwd | grep -q '[[:upper:]]'; then
	echo "Der Pfad $customserver beinhaltet Großbuchstaben. Ein Bug führt dazu, dass Verzeichnisse innerhalb cstrike/custom nicht durchsucht werden"
fi


Mist, jetzt muss ich erst Windows starten um den Fehler auf dem Webserver zu korrigieren.

Kleine Anmkerung: Wenn jemand z.B. noch nie was in z.B. sound oder materials kopiert hat, dann fehlen die Verzeichnisse nach der Konvertierung. Wieso sollte man auch Dateien sichern, die 1. nicht mehr benötigt sind und 2. vom Server stammen.

Mein Script löscht absichtlich das Verzeichnis css nicht, da eventuell vielleicht doch noch Dateien drin sein könnten, die man braucht.

Beim Provider werde ich es aber so machen. Ansonsten bleibt das immer so, wenn man es nicht von Anfang an konsequent durchzieht.

Lacrimosa99

Fortgeschrittener

Beiträge: 275

Wohnort: Leipzig

Beruf: IT-Systemintegrator

Rootserver vorhanden: Ja

  • Nachricht senden

8

Freitag, 19. April 2013, 14:30

Hab dein Script noch etwas umgeschrieben bzw angepasst...

Das Script ist als Gameserver User auszuführen... bitte Post 1 von DeaD_EyE beachten!

Script änderungen:

- Maps, Materials, Models usw werden in denn cstrike Ordner (Hauptordner) verschoben und nicht in denn Custom (Models usw laufen ohne anpassung nicht)
- SM wird in die Metamod.ini geschrieben und danach die sourcemod.vdf (im Metamod Ordner) gelöscht
- der alte css Ordner wird gelöscht
- das Script wird gelöscht nach beendigung der convertierung
- Umlaute (ö,ä,ü) umgeschrieben zu oe,ae,ue da Unix keine Umlaute darstellen möchte (wenn nicht angepasst)
- Fix von Post 7 eingebaut/im Script geändert

Wenn gewünscht, kann ich noch das Steam Pipe Update einbauen (nur bei Servern ohne WI nötig).

Unser WI (von Ulrich Block / Easy-WI) läuft alles auf Symlinks... daher brauchen wir es nicht^^

Hier das Script von mir:

Spoiler Spoiler


Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#!/bin/sh

# original Author dieses Scriptes "DeaD_EyE | http://silentattack.eu/"
# angepasst und modifiziert durch "Blackpanther | http://www.devil-hunter-multigaming.de"

customserver="`pwd`"
filelisturl="http://downloads.sourceserver.info/tools/steampipe/css/convert/css.filelist.0"
exclude="motd.txt mapcycle.txt maplist.txt server.cfg autoexec.cfg autoexec_custom.cfg"

###################################################################
liste=   #leer lassen
for datei in $exclude; do
  if [ -z "$liste" ]; then
    liste="$(echo "$datei" | sed 's/\./\\./g')"
  else
    liste="$liste$(echo "|$datei" | sed 's/\./\\./g')"
    fi
done

#Alte Dateien löschen
echo "Serverdateien werden geloescht"
wget -q "$filelisturl" -O- | egrep -Zzv "$liste" | xargs -0 rm 2>/dev/null
echo "Loesche *.ztmp"
find -type f -name '*.ztmp' -delete
echo "Loesche Logdateien"
find -type f -name '*.log' -delete
echo "Loesche leere Verzeichnisse"
find -type d -empty -delete

#hldsupdatetool löschen
echo "Loesche Reste des HldsUpdatetools"
rm -f hldsupdatetool.bin readme.txt steam steam.1 test1.so test2.so test3.so

#Neue Struktur anlegen
echo "Erstelle Verzeichnis cstrike/custom/kunde"
mkdir -p cstrike/custom/kunde

#Dateien und Verzeichnisse verschieben
echo "Verschiebe addons nach cstrike/addons"
mv css/cstrike/addons cstrike/
echo "Verschiebe Configdateien nach cstrike/cfg"
mv css/cstrike/cfg cstrike/
echo "Verschiebe mapcycle.txt, maplist.txt und motd.txt nach cstrike/"
mv css/cstrike/mapcycle.txt css/cstrike/maplist.txt css/cstrike/motd.txt cstrike/

#Content verschieben
echo "Verschiebe die Verzeichnisse maps, materials, models, particles, resource, scripts, sound nach cstrike/"
mv css/cstrike/maps css/cstrike/materials css/cstrike/models css/cstrike/particles css/cstrike/resource css/cstrike/scripts css/cstrike/sound cstrike/

#Verschiebe Demos
mv css/cstrike/*.dem cstrike/

if pwd | grep -q '[[:upper:]]'; then
	echo "Der Pfad $customserver beinhaltet Großbuchstaben. Ein Bug fuehrt dazu, dass Verzeichnisse innerhalb cstrike/custom nicht durchsucht werden"
fi

#Fix für mm:s-plugins:
if [ ! -z "$(find cstrike/addons/metamod/ -maxdepth 1 -mindepth 1 -type f -name '*.vdf' 2>/dev/null)" ]; then 
	echo "Workaround fuer MM:S-Plugins"
	awk '/file/ {print $2}' cstrike/addons/metamod/sourcemod.vdf | tr -d '"' >> cstrike/addons/metamod/metaplugins.ini
	rm -f cstrike/addons/metamod/*.vdf
fi

#Konvertierung abgeschlossen
echo "Loesche das Verzeichnis css"
rm -r css

#Ab hier das Update einspielen
#kopieren oder steamcmd/bzw. updatetool nutzen



#löschen dieser Datei
echo ""
echo "alles erledigt!"
echo "loesche mich selbst, da alles erledigt."
echo ""
rm -f ./css_pipe.sh



Hoffe es hilft noch jemandem und ist auch für DeaD_EyE ok =)

MFG
Blacky



Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Lacrimosa99« (19. April 2013, 15:22) aus folgendem Grund: am Script noch was gefixt


Ähnliche Themen