Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: sourceserver.info. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

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

Donnerstag, 23. Dezember 2010, 21:10

Server schnell sichern, die Symlinks verwenden

Ich hatte öfters das Problem, dass ich mal eben Gameserver sichern musste, die mit Symlinks aufgebaut sind. Wenn man für die Symlinks z.B. absolute Pfade verwendet, ist das Löschen der verwaisten Symlinks ein Mehraufwand. Um das direkt auszuschließen, kann man mit dem Find-Befehl und Xargs arbeiten.

Wenn ich z.B. den Server in '/server/publicserver/cssfun' habe, dann wechsel ich einfach mit cd nach '/server/publicserver'.

Mit diesem Befehl kann man den Server dann sichern:

Quellcode

1
find cssfun/ -type f -a ! -name *.dat -a ! -name *.log -a ! -name *.ztmp -a ! -name modelsounds.cache -a ! -name steam_appid.txt -a ! -empty -a ! -path '*/DownloadLists/*' -print0 | xargs -0 tar -czf cssfun.tar.gz


Erklärung:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
find cssfun/ -> sucht dann alle Dateien nur in 'cssfun/'.
-type f -> sucht nur nach Dateien
-a ! -name *.dat -> und nicht, d.h. diese Bedingung darf nicht erfüllt sein (schließt alle Dateien mit .dat am Ende aus)
-a ! -name *.log -> schließt alle Logdateien aus
-a ! -name *.ztmp -> schließt alle Dateien mit .ztmp aus
-a ! -name modelsounds.cache -> schließt die Datei modelsounds.cache aus 
-a ! -name steam_appid.txt -> schließt die Datei steam_appid.txt aus
-a ! -empty -> schließt leere Dateien aus
-a ! -path '*/DownloadLists/*' -> schließt alle Verzeichnisse aus, die DownloadLists heißen
-print0 -> trennt die Dateinamen mit einem 0-Byte (so kann dann auch mit Leerzeichen in Dateinamen umgegangen werden)

| xargs -0 -> Das Pipe-Zeichen bewirkt, dass die Ausgabe von find an den Befehl xargs weitergeleitet wird. '-0' sagt xargs, dass die Argumente mit einem 0-Byte getrennt sind
tar -czf cssfun.tar.gz -> erstellt ein gzip komprimiertes Tar-Archiv. Am Ende packt xargs die Ausgabe von find mit an. Das bewirkt, dass nur die Dateien gepackt werden, die von find auch gefunden werden.


Wenn die Maps, Materials, Sounds und Models auch noch Symlinks sind, kann man mal eben einen Gameserver in 10 Sekunden sichern. Die Symlinks kann man hinterher ganz normal mit dem Befehl "cp -sR" erstellen.