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

Sonntag, 2. Mai 2010, 01:21

Was sind Symlinks (mit Keksen erklärt)

Viele fragen sich, was unter Linux Symlinks sind.
Wir gehen von aus, dass unsere Datei ein Keks ist.
Lilly besitzt diesen Keks (/home/lilly/keks) und alle aus ihrer Gruppe (keksesser) dürfen auf den Keks zugreifen und diesen auch verändern (chmod 660).
Wir wollen diesen Keks auch an einem anderen Ort auch haben. Sagen wir mal der DeaD_EyE will den selben Keks auch haben. Also erstellen wir einen Symlink von diesem Keks:

Quellcode

1
ln -s /home/lilly/keks /home/deadeye/keks

Da deadeye auch in der Gruppe keksesser ist, darf der diesen sich auch ansehen und ihn sogar anbeißen oder aufessen.
Wenn deadeye seinen Symlink den Keks (/home/deadeye/keks) anbeißt, ist der Keks von Lilly (/home/lilly/keks) auch angebissen. Beißt Lilly nochmal in den Keks rein, fehlt dem deadeye auch automatisch ein Stück vom Keks. Das geschieht Zeitgleich, da der Keks von deadeye ja eigentlich nur auf den Keks von Lilly zeigt.

Da deadeye vom Keks schon ganug hat und etwas aufräumen will, löscht er seinen Keks einfach, der eigentlich nur ein Symlink ist. Lilly ist ganz froh darüber und kann ihren Keks endlich alleine essen. Durch das Löschen des Symlinks bleibt ihr Keks unverändert.

Wenn Lilly jetzt ihren Keks an einem ganz anderen Ort haben will, z.B. in /germany/hamburg/innenstadt/keks, kann sie von ihrem echten Keks, der in /home/lilly/keks ist, einen Symlink erstellen:

Quellcode

1
ln -s /home/lilly/keks /germany/hamburg/innenstadt/keks
. Wenn Lilly jetzt in die Hamburger Innenstadt reist (cd /germany/hamburg/innenstadt/), den Keks anbeißt (nano -w keks) und dann wieder nach Hause geht (cd /home/lilly/) ist ihr echter Keks auch genaso angebissen, wie der in Hamburg. Der Keks in Hamburg ist nur ein Symlink und verweist dadurch auf den Keks von Lilly.

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

2

Sonntag, 2. Mai 2010, 01:24

Re: Was sind Symlinks (mit Keksen erklärt)

Jaja, eigentlich gehört der Keks dem Erklärbär. Er hat ihn Lilly nur ausgeliehen:

Quellcode

1
2
mv /home/erklaerbaer/keks /home/lilly/
chown lilly /home/lilly/keks

Kathy

Fortgeschrittener

Beiträge: 523

Wohnort: München

Beruf: Roaster/Freelance Editor

Rootserver vorhanden: Ja

  • Nachricht senden

3

Sonntag, 2. Mai 2010, 01:26

Re: Was sind Symlinks (mit Keksen erklärt)

// Please enter your comment here
sv_nc 1
quit

ps -ux | grep comment

PID Name
1337 Immer diese freaks.

kill -9 1337

exit
user Lilly logged out
exit.

New Session.

connecting to root@kek.sma.st.er.313:373
password: ***********

find erklaerbaer | grep keks
find: `erklaerbaer': No such file or directory
mkdir erklaerbaer
cd erklaerbaer
nano -w keks
*******************************************************************************
define yummy
yummy=awesome
define crunchy
crunchy=awesome
define keks
if keks is yummy;crunchy
keks=yummy
keks=crunchy
then
keks=awesome²
else
write ERROR;
end;
end.

CTRL+X
Y
ENTER

exit
user keksisawesomesquared logged out


NTcgNjggNmYgNjEgMmUgMjAgNDQgNjUgNmEgNjEgMjAgNzYgNzUgMmU=

Wer weiss was das ist?

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

4

Sonntag, 2. Mai 2010, 01:33

Re: Was sind Symlinks (mit Keksen erklärt)

Zum Schluss ist Lilly so lieb und gibt Erklärbär den angebissenen Keks zurück (mv /home/lilly/keks /home/erklaerbaer/), vergisst aber ihm als Besitzer des Kekses einzutragen. Macht aber nix, da der Keks von der Gruppe keksesser verändert werden darf, kann der Keksesser Erklärbär den angebissenen Keks auch aufessen (dd if=/dev/null of=/home/erklaerbaer/keks bs=0). Danach ist der Keks 0 Byte groß.

Kathy

Fortgeschrittener

Beiträge: 523

Wohnort: München

Beruf: Roaster/Freelance Editor

Rootserver vorhanden: Ja

  • Nachricht senden

5

Sonntag, 2. Mai 2010, 01:41

Re: Was sind Symlinks (mit Keksen erklärt)

Zitat von »"DeaD_EyE"«

Zum Schluss ist Lilly so lieb und gibt Erklärbär den angebissenen Keks zurück (mv /home/lilly/keks /home/erklaerbaer/), vergisst aber ihm als Besitzer des Kekses einzutragen. Macht aber nix, da der Keks von der Gruppe keksesser verändert werden darf, kann der Keksesser Erklärbär den angebissenen Keks auch aufessen (dd if=/dev/null of=/home/erklaerbaer/keks bs=0). Danach ist der Keks 0 Byte groß.



stop wenn erklaerbaer den keks aufisst

Quellcode

1
rm -R /home/erklaerbaer/keks


und somit hat erklaerbaer keine kekse mehr.

und jetzt macht Lilly mal

mkdir /home/lilly/lunge
mkdir /home/lilly/leberetmagen
mkdir /home/lilly/shisha
und
mkdir /home/lilly/SoCoCola
dann
mv /home/lilly/SoCoCola /home/lilly/leberetmagen
mv /home/lilly/shisha /home/lilly/lunge

das ergibt dann

nano -w spass
******************************************************************************
define spass
spass=lustig
CTRL+X dann Y und En[de]ter


NTcgNjggNmYgNjEgMmUgMjAgNDQgNjUgNmEgNjEgMjAgNzYgNzUgMmU=

Wer weiss was das ist?

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

6

Sonntag, 2. Mai 2010, 01:43

Re: Was sind Symlinks (mit Keksen erklärt)

Ja, das stimmt auch. Wäre der Keks 0 Byte groß, könnte man ihn noch sehen, er würde aber nicht mehr schmecken.

Kathy

Fortgeschrittener

Beiträge: 523

Wohnort: München

Beruf: Roaster/Freelance Editor

Rootserver vorhanden: Ja

  • Nachricht senden

7

Sonntag, 2. Mai 2010, 01:48

Re: Was sind Symlinks (mit Keksen erklärt)

Daher auch gleich rm sonst müsste man ja mkdir /home/erklaerbaer/toilette und mkdir /home/erklaerbaer/toilette/ausgeschiedenerkeks machen und das wäre ja dann nichtmehr lecker.


NTcgNjggNmYgNjEgMmUgMjAgNDQgNjUgNmEgNjEgMjAgNzYgNzUgMmU=

Wer weiss was das ist?

8

Sonntag, 2. Mai 2010, 02:02

Re: Was sind Symlinks (mit Keksen erklärt)

Ich mag gerne Kekse, aber ihr beide macht euch über die leckeren Kekse lustig. heul
Naja aber jetzt habe ich es verstanden ;)
+88_________________+880______
_+880_______________++80______
_++88______________+880_______
_++88_____________++88________
__+880___________++88_________
__+888_________++880__________
__++880_______++880___________
__++888_____+++880____________
__++8888__+++8880++88_________
__+++8888+++8880++8888________
___++888++8888+++888888+80____
___++88++8888++8888888++888___
___+++++888888fx8888888888__
____++++++888888888888888888__
_____++++++++000888888888888__
_____+++++++00008f8888888888__
______+++++++00088888888888___
_______+++++++0888f8888888____
_______+++++++08888l888888____
________+++++++8888888888_____

Ich bin das Arschloch das dir direkt die Meinung sagt, um dir die Peinlichkeit zu ersparen.

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

Kathy

Fortgeschrittener

Beiträge: 523

Wohnort: München

Beruf: Roaster/Freelance Editor

Rootserver vorhanden: Ja

  • Nachricht senden

10

Sonntag, 2. Mai 2010, 02:39

Re: Was sind Symlinks (mit Keksen erklärt)

Zitat von »"DeaD_EyE"«



keks und plätzchen nerd


NTcgNjggNmYgNjEgMmUgMjAgNDQgNjUgNmEgNjEgMjAgNzYgNzUgMmU=

Wer weiss was das ist?

11

Sonntag, 2. Mai 2010, 03:38

Re: Was sind Symlinks (mit Keksen erklärt)

Weil der Erklärbär das herannahende Krümelmonster aus der gruppe der Keksesser mit geschmacklosen Keks Atrappenn foppen will macht er gleich mal
touch /home/erklaerbaer/keks && touch /home/erklaerbaer/keks2 && touch /home/erklaerbaer/keks3

und guckt was passiert.
Webbasierender Config Ersteller: www.ulrich-block.de für CS 1.6, CSS, DODS und TF2.

Ebenso wird werden verschiedene Debian Gameserverkernel zum Download angeboten.

12

Sonntag, 2. Mai 2010, 06:14

Re: Was sind Symlinks (mit Keksen erklärt)

ist es theoretisch möglich sich den pfad der originaldatei anzeigen zu lassen, wenn man nur den symlink hat?
bei g-portal z.b. werden server die über das webinterface installiert werden zum größten teil automatisch mit symlinks installiert.

dies soll wohl indirekt zu problemen im listing der steamserver führen, deswg frage ich :)
http://forum.g-portal.de/showthread.php?915-Steam-Server-Liste-wieso-werden-unsere-Server-nicht-angezeigt..&p=4505#post4505">http://forum.g-portal.de/showthread.php ... 5#post4505</a>
Für LEute die nicht verlieren können, cheatet die ganze Welt!

=Freie Allianz kranker Krieger= Onlinefungaming seit 1999

MadMakz

Super Moderator

Beiträge: 1 878

Wohnort: ~#

Rootserver vorhanden: Ja

  • Nachricht senden

13

Sonntag, 2. Mai 2010, 10:31

Re: Was sind Symlinks (mit Keksen erklärt)

Zitat von »"FAKK|biggiman"«

ist es theoretisch möglich sich den pfad der originaldatei anzeigen zu lassen, wenn man nur den symlink hat?
bei g-portal z.b. werden server die über das webinterface installiert werden zum größten teil automatisch mit symlinks installiert.

dies soll wohl indirekt zu problemen im listing der steamserver führen, deswg frage ich :)
http://forum.g-portal.de/showthread.php?915-Steam-Server-Liste-wieso-werden-unsere-Server-nicht-angezeigt..&p=4505#post4505">http://forum.g-portal.de/showthread.php ... 5#post4505</a>


Zitat

ls -la

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

14

Sonntag, 2. Mai 2010, 10:41

Re: Was sind Symlinks (mit Keksen erklärt)

-l (liste - detailierte Informationen) -a (versteckte Dateien werden angezeigt)


Es gibt noch den Befehl file. Der zeigt auch bei Symlinks den Pfad zu verwiesenen Datei.
D.h., wenn du wissen willst, wem der Keks gehört oder was im Keks überhaupt drin ist (32-Bit-Keks,64-Bit-Keks, oder ein shell-Script-Keks), kannst du file verwenden.

15

Sonntag, 2. Mai 2010, 11:04

Re: Was sind Symlinks (mit Keksen erklärt)

danke! wenn wir schon dabei sind, gibt es denn auch einen befehl um den symlink mit der tatsächlichen datei zu ersetzen? shaem2
Für LEute die nicht verlieren können, cheatet die ganze Welt!

=Freie Allianz kranker Krieger= Onlinefungaming seit 1999

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

16

Sonntag, 2. Mai 2010, 11:30

Re: Was sind Symlinks (mit Keksen erklärt)

Soweit ich weiß nicht direkt. Dafür könnte man sich ein script schreiben.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash
if [ ! -f "$1" ]; then echo "Datei exisitiert nicht"; exit; fi
symfile=`file $1`
if `file $symfile | grep -q "symbolic"`; then echo "Die Datei $1 ist ein symbolischer Link"; else echo "Die Datei $1 ist kein symbolischer Link"; exit; fi
origfile=$(file $1 | cut -d '`' -f2 | cut -d "'" -f1)
if [ ! -f "$origfile" ]; then echo "Originaldatei exisitiert nicht"; exit; fi
echo "Originaldatei: $origfile"
echo "Lösche Symlink"
rm $1
echo "Kopiere Originaldatei $origfile nach $1"
cp $origfile $1


Ist jetzt kein besonders guter code. Klappt auch nur bei Dateien und nicht bei Verzeichnissen. Dafür müsste man noch eine Überprüfung einbauen.

MadMakz

Super Moderator

Beiträge: 1 878

Wohnort: ~#

Rootserver vorhanden: Ja

  • Nachricht senden

17

Sonntag, 2. Mai 2010, 11:32

Re: Was sind Symlinks (mit Keksen erklärt)

hatte meinen letzten post noch mal erweitert, aber gesehen das der thread schon weiter geht, also hier mein edit:

symlink des srcds stellen allerdings keine probleme dar, solange die einzelnen server über ein "eigenes" startcommand mit mindestens unterschiedlichen ports gestartet werden.

man sollte aber darauf achten generell auf symlinks von addons, cfg und log ordnern zu verzichten.

-autoupdate kann aber probleme machen wenn nicht -dir . (steam == basis installations pfad) als install pfad der "hauptinstallation" benutzt wurde und/oder nicht alle ordner (auser addons, cfg* und log) via symlink geteilt werden.

*es sei denn es gibt ein steam update dafür, was es aber in zig jahren nicht gab)

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

18

Sonntag, 2. Mai 2010, 12:57

Re: Was sind Symlinks (mit Keksen erklärt)

Ich habs schonmal irgendwo geschrieben.

Gehen wir von aus, dass unser Masterserver in /home/gs/srcds ist.
Wir möchten eine Kopie von diesem erstellen, aber mit Symlinks und die Verzeichnisse sollen keine Symlinks sein.

Dafür erstellen wird die Verzeichnisstruktur für server1:

Quellcode

1
mkdir /home/gs/server1


Wir möchten jetzt den Inhalt von /home/gs/srcds/* auch in /home/gs/server1/ als Symlinks haben. Dafür gibt es beim Copy-Befehl den Parameter -s (make symbolic links instead of copying). Wie schon zuvor beschrieben, werden Verzeichnisse auch erstellt. Damit der Copy-Befehl den Inhalt aller Unterverzeichnisse mitkopiert, nutzen wir -R (copy directories recursively).
Der Befehl sieht dann so aus:

Quellcode

1
2
3
cp -sR /home/gs/srcds/* /home/gs/server1/
# Das Wildcard * wählt alle Dateien und Verzeichnisse in /home/gs/srcds/ aus
# /home/gs/server1/ <- der Schrägstrich am Ende ist wichtig


Nach dem ersten mal werden noch keine Fehlermeldungen kommen. Wird der Befehl nochmal wiederholt, werden jetzt viele Fehler ausgegeben, da die Dateien (Symlinks) schon alle exisitieren.

Mittels &> /dev/null am ende des Befehls, kann man die Ausgabe umleiten.

Quellcode

1
cp -sR /home/gs/srcds/* /home/gs/server1/ &> /dev/null


Kommt ein SteamUpdate bei dem keine neuen Dateien hinzukommen, braucht man den cp-Befehl nicht nochmal auszuführen.
Ich habs in meinem Updatescript immer gemacht, da man das vorher nie wissen kann.
Also nach jedem SteamUpdate:

Quellcode

1
2
3
4
5
6
cp -sR /home/gs/srcds/* /home/gs/server1/ &> /dev/null
cp -sR /home/gs/srcds/* /home/gs/server2/ &> /dev/null
cp -sR /home/gs/srcds/* /home/gs/server3/ &> /dev/null
cp -sR /home/gs/srcds/* /home/gs/server4/ &> /dev/null
cp -sR /home/gs/srcds/* /home/gs/server5/ &> /dev/null
cp -sR /home/gs/srcds/* /home/gs/server6/ &> /dev/null


Wie beim letzen OrangeBox-Update kann es vorkommen, dass Dateien auch entfernt sind. Man hat dann in den Kopien verwiesene Symlinks, die auf fehlende Dateien verweisen.

Wenn man eine halbwegs aktuelle Distribution hat, kann man dieser einfach mit folgendem Befehl suchen und direkt löschen:

Quellcode

1
find /home/gs/server1 -L -type l -exec rm '{}' \;

Quellcode

1
2
#dieser Code ist noch effizienter
find /home/gs/server1 -L -type l -delete

Viele Dateien, die Symlinks sind und bearbeitet werden sollen, können aus der Serverkopie gelöscht werden und vom Masterserver direkt kopiert werden. Es geht auch anders. Dafür kann man sich ein Template erstellen. Dieses hat die gleiche Struktur wie der Masterserver, aber nur mit den Dateien, die der Admin verändern muss und schom beim Masterserver enthalten sind oder halt noch fehlen, aber schon bei der erstinstallation der Serverkopie dabei sein sollen.

Wenn das Template z.B. in /home/gs/srcds_template ist, können wir dieses jeweils vor dem ersten mal kopieren der Symlinks in das leere Serververzeichnis kopieren. Z.b. lohnt es sich Dateien wie die server.cfg, autoexec.cfg schonmal für das Template in /home/gs/srcds_template/cstrike/cfg/ zu erstellen. Die maplist.txt und der mapcycle.txt können auch schonmal erstellt werden, in diesem Fall kommen die Dateien nach /home/gs/srcds_template/cstrike/.

Jetzt das Serververzeichnis erstellen:

Quellcode

1
mkdir /home/gs/server1_mit_templates/

Danach das Template kopieren:

Quellcode

1
2
cp -R /home/gs/srcds_template/* /home/gs/server1_mit_templates/
#diesmal echte Dateien, keine Symlinks

Und jetzt die Serverdateien:

Quellcode

1
cp -sR /home/gs/srcds/* /home/gs/server1/ &> /dev/null

Beim ersten mal kann man &> /dev/null weglassen. Dann sollten nur die Dateien in den Fehlermeldungen auftauchen, die schon bereits vom Template kopiert worden sind.

Ich hoffe, dass das einigermaßen verständlich ist.

Kathy

Fortgeschrittener

Beiträge: 523

Wohnort: München

Beruf: Roaster/Freelance Editor

Rootserver vorhanden: Ja

  • Nachricht senden

19

Sonntag, 2. Mai 2010, 15:03

Re: Was sind Symlinks (mit Keksen erklärt)

Irgendwie schade der Thread hat nix mehr mit keksen zu tun.

Da ich den aber brauche,

Quellcode

1
mkdir /home/gs/cookies


wobei ich hier nur meine "two cents" dazugebe. Es mag zwar Platzsparender sein mehrere Server einfach via Symlink auf eine SRCDS zu verweisen aber es ist doch vielleicht besser nur die bestimmte dateien wie maps/models/sounds etc den addon Ordner könnte man u.U. wenn alle server die auf dem Rootserver mit drauf sind warserver sind auch verlinken da zBlock und so.

Zudem weiss ich das GameCreate nur eine SRCDS benutzt und braucht dafür keine symlinks. Ich weiss das hier einige schlecht auf gamecreate anzusprechen sind aber die haben die pfade völlig geändert das beispielsweise der addonsordner eben addonsPORT hieß genauso wie die configs serverPORT.cfg


NTcgNjggNmYgNjEgMmUgMjAgNDQgNjUgNmEgNjEgMjAgNzYgNzUgMmU=

Wer weiss was das ist?

20

Sonntag, 2. Mai 2010, 22:35

Re: Was sind Symlinks (mit Keksen erklärt)

danke für die detaillierten ausführungen :)
Für LEute die nicht verlieren können, cheatet die ganze Welt!

=Freie Allianz kranker Krieger= Onlinefungaming seit 1999