Hallo, ich habe ein Problem und dementsprechend eine Frage zu links: Ich benötige in meinem System mehrere Dateien an unterschiedlichen Orten. Damit sind links prädestiniert. Ich nutze derzeit eigentlich ausschließlich symlinks. Das hat den vorteilhaften (Neben)effekt, dass bei einem Löschen des symlinks von Windows-Clients aus mittels Samba die Originaldatei noch vorhanden ist. Es hat aber den für mich problematischen Nachteil, dass ein symlink ins Leere geht, wenn die Ursprungsdatei umbenannt wird. Meine Idee war es jetzt, das ganze mit hardlinks zu realisieren. Das scheint aber nicht unproblematisch zu sein. Wenn ich mich richtig belesen habe, können hardlinks nicht von jedem Benutzer angelegt werden. Zudem bekommt der Hardlink nichts davon mit, wenn die Datei (als dogmatisch wohl der 1. hardlink) umbenannt wird. Oder doch? Zudem wüsste ich gern, wie Samba mit solchen Links umgeht. Wo kann ich dazu etwas möglichst einfaches zum Nachlesen finden. Das Problem ist auch, dass ich solche links z.B. mittels php-Skripten anlegen können müsste. Ich will den Apache aber nicht als root laufen haben... Danke für Eure Hinweise/Ideen. Alex -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo,
ich habe ein Problem und dementsprechend eine Frage zu links: Ich ben�tige in meinem System mehrere Dateien an unterschiedlichen >> Orten. Damit sind links pr�destiniert. Ich nutze derzeit eigentlich ausschlie�lich symlinks. Das hat den vorteilhaften (Neben)effekt, dass bei einem L�schen des symlinks von Windows-Clients aus mittels Samba die Originaldatei noch vorhanden ist. Es hat aber den f�r mich problematischen Nachteil, dass >> ein symlink ins Leere geht, wenn die Ursprungsdatei umbenannt wird. Meine Idee war es jetzt, das ganze mit hardlinks zu realisieren. Das >> scheint aber nicht unproblematisch zu sein. Wenn ich mich richtig belesen habe, k�nnen hardlinks nicht von jedem >> Benutzer angelegt werden. Zudem bekommt der Hardlink nichts davon mit, >> wenn die Datei (als dogmatisch wohl der 1. hardlink) umbenannt wird. a) in gaaaanz alten Texten gab es die Einschränkundg, dass nur root hardlinks auf directories anlegen kann (und das mit gutem Grund) In Linux ist dieses Feature sowieso gesperrt b) das ist ja gerade der Sinn der Übung - wenn meine Datei einmal x.dat und einmal testdaten/x.dat heisst und jemand die testdaten/x.dat zu testdaten/x.csv macht, stört das die x.dat eben nicht
Oder doch? Zudem w�sste ich gern, wie Samba mit solchen Links umgeht. Da habe ich keine Idee - ich vermute mal dass ein Windows Client da gar nichts davon merkt. Ich könnte mir ehere vorstellen, dass man nach Programmen Ausschau halten muss, die beim Ändern einer Datei diese nicht überschreiben sondern löschen und dann neu anlegen Dazu gehört auch die "sicher anlegen" Fraktion unter Linux, die Datei.tmp schreibt und dann in Datei umbenennt
Wolfgang -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo Wolfgang, On 07.02.14 05:42, hamann.w@t-online.de wrote:
Hallo, ich habe ein Problem und dementsprechend eine Frage zu links: Ich benötige in meinem System mehrere Dateien an unterschiedlichen Orten. Damit sind links prädestiniert. Ich nutze derzeit eigentlich ausschließlich symlinks. Das hat den vorteilhaften (Neben)effekt, dass bei einem Löschen des symlinks von Windows-Clients aus mittels Samba die Originaldatei noch vorhanden ist. Es hat aber den für mich problematischen Nachteil, dass ein symlink ins Leere geht, wenn die Ursprungsdatei umbenannt wird. Meine Idee war es jetzt, das ganze mit hardlinks zu realisieren. Das scheint aber nicht unproblematisch zu sein. Wenn ich mich richtig belesen habe, können hardlinks nicht von jedem Benutzer angelegt werden. Zudem bekommt der Hardlink nichts davon mit, wenn die Datei (als dogmatisch wohl der 1. hardlink) umbenannt wird. a) in gaaaanz alten Texten gab es die Einschränkundg, dass nur root hardlinks auf directories anlegen kann (und das mit gutem Grund) In Linux ist dieses Feature sowieso gesperrt b) das ist ja gerade der Sinn der Übung - wenn meine Datei einmal x.dat und einmal testdaten/x.dat heisst und jemand die testdaten/x.dat zu testdaten/x.csv macht, stört das die x.dat eben nicht
Das ist ja mein Problem. Mich stört es. Die Namen sollen/müssen immer gleich sein. Dass die Datei auch in einem anderen directory als symlink abgelegt ist spielt keine Rolle.
Oder doch? Zudem wüsste ich gern, wie Samba mit solchen Links umgeht. Da habe ich keine Idee - ich vermute mal dass ein Windows Client da gar nichts davon merkt. Ich könnte mir ehere vorstellen, dass man nach Programmen Ausschau halten muss, die beim Ändern einer Datei diese nicht überschreiben sondern löschen und dann neu anlegen Dazu gehört auch die "sicher anlegen" Fraktion unter Linux, die Datei.tmp schreibt und dann in Datei umbenennt
Genau das will ich gerade nicht (Siehe oben). Dateiname und Inhalt sollen und müssen identisch sein. Ich brauch also ein Programm, dass die Datei direkt ändert. Ein Anlegen von tmp, Löschen der Originaldatei und umbenennen wäre also schädlich. Muss ich doch den Hintergrund erläutern: Ich synchronisiere einen Teil _ausgewählter Daten_ mit einem Webserver. Um nicht den ganzen Baum durchsuchen und/oder eine Liste abarbeiten zu müssen, werden von den Dateien symlinks angelegt. Die dahinter stehenden Daten/Dateien werden dann mit rsync -u -L ins www verschoben. Wird die Originaldatei umbenannt, ist der symlink ungültig und rsync läuft sich tot. Ich könnte nun das Skript aufbohren und eine entsprechende Prüfung voranstellen. Damit tue ich mich aber schwer. Eine andere Lösung - bei der eine Umbenennung erkannt würde - wäre mir daher lieber und ich hatte auf die Macht der links gehofft. Es scheint also mit links (ob hard oder symbolisch) allgemein nicht zu gehen, wenn ich das im www gelesene und Deine Antwort zusammenfasse. Gruß, Alex -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Das ist ja mein Problem. Mich stört es. Die Namen sollen/müssen immer >> gleich sein. Dass die Datei auch in einem anderen directory als symlink >> abgelegt ist spielt keine Rolle.
Ich synchronisiere einen Teil _ausgewählter Daten_ mit einem Webserver. >> Um nicht den ganzen Baum durchsuchen und/oder eine Liste abarbeiten zu >> müssen, werden von den Dateien symlinks angelegt. Die dahinter stehenden >> Daten/Dateien werden dann mit rsync -u -L ins www verschoben. Wird die Originaldatei umbenannt, ist der symlink ungültig und rsync >> läuft sich tot.
Kurze Nachfrage zum Verständnis: wenn die Originaldatei umbenannt wird, beduetet das für den Webserver a) sie soll trotzdem (und mit dem für den Server festgelegten Namen) dorthin - dann wäre nämlich ein hardlink genau richtig b) sie soll nicht mehr auf den Server (und ggf. sogar von dort entfernt werden) Wolfgang -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo Wolfgang, On 07.02.2014 08:53, hamann.w@t-online.de wrote:
Das ist ja mein Problem. Mich stört es. Die Namen sollen/müssen immer >> gleich sein. Dass die Datei auch in einem anderen directory als symlink >> abgelegt ist spielt keine Rolle.
> Ich synchronisiere einen Teil _ausgewählter Daten_ mit einem Webserver. >> Um nicht den ganzen Baum durchsuchen und/oder eine Liste abarbeiten zu >> müssen, werden von den Dateien symlinks angelegt. Die dahinter stehenden >> Daten/Dateien werden dann mit rsync -u -L ins www verschoben. Wird die Originaldatei umbenannt, ist der symlink ungültig und rsync >> läuft sich tot.
Kurze Nachfrage zum Verständnis: wenn die Originaldatei umbenannt wird, beduetet das für den Webserver
Danke erstmal für Deine Mühen. Um sicher zu gehen, dass ich die Nachfragen richtig verstanden habe, hier mal ein Ablaufplan: 1. eine Datei wird angelegt 2. diese soll _auch_ im www vorhanden sein -> symlink anlegen 3. rsync mit webserver (automatisiert mit cron), alles OK 4. Datei wird umbenannt -> symlink geht jetzt ins Leere 5. rsync läuft sich tot, weil er über den symlink "stolpert"
a) sie soll trotzdem (und mit dem für den Server festgelegten Namen) dorthin - dann wäre nämlich ein hardlink genau richtig Die Datei soll auf den Server und - sie soll immer dieselben Daten haben (Siehe oben) - konsequenter Weise auch den umbenannten Namen haben. Der hardlink bekommt aber von der Umbenennung der Ausgangsdatei nichts mit - so jedenfalls mein Verständnis bisher.
b) sie soll nicht mehr auf den Server (und ggf. sogar von dort entfernt werden) Genau. Sie wird auch entfernt. Wenn die Datei ordnungsgemäß gelöscht wird (mittels des php-Codes), wird auch der Symlink entfernt. rsync findet lokal die Datei nicht mehr und löscht sie damit auch auf dem Server. Das war/ist aber bislang nicht mein Problem. Mein Problem sind unartige User, die mal so eben die Originaldatei - Zugriff muss ich ja leider gewähren ;-) - umbenennen und damit den symlink kaputt machen. Wenn sie die Datei von Hand löschen, habe ich natürlich dasselbe Problem. Aber dann wäre der hardlink nach meinem Verständnis schädlich, weil er von der Löschaktion eben nichts mitbekommt.
Gruß, Alex -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
>> >> Hallo Wolfgang, >> >> On 07.02.2014 08:53, hamann.w@t-online.de wrote: >> >>>>> Das ist ja mein Problem. Mich stört es. Die Namen sollen/müssen immer >> gleich sein. Dass die Datei auch in einem anderen directory als symlink >> abgelegt ist spielt keine Rolle. >> >>>>>>> Ich synchronisiere einen Teil _ausgewählter Daten_ mit einem Webserver. >> Um nicht den ganzen Baum durchsuchen und/oder eine Liste abarbeiten zu >> müssen, werden von den Dateien symlinks angelegt. Die dahinter stehenden >> Daten/Dateien werden dann mit rsync -u -L ins www verschoben. >> >>> Wird die Originaldatei umbenannt, ist der symlink ungültig und rsync >> läuft sich tot. >> > >> > Kurze Nachfrage zum Verständnis: >> > wenn die Originaldatei umbenannt wird, beduetet das für den Webserver >> >> Danke erstmal für Deine Mühen. Um sicher zu gehen, dass ich die >> Nachfragen richtig verstanden habe, hier mal ein Ablaufplan: >> >> 1. eine Datei wird angelegt >> 2. diese soll _auch_ im www vorhanden sein -> symlink anlegen >> 3. rsync mit webserver (automatisiert mit cron), alles OK >> >> 4. Datei wird umbenannt -> symlink geht jetzt ins Leere >> 5. rsync läuft sich tot, weil er über den symlink "stolpert" >> >> > a) sie soll trotzdem (und mit dem für den Server festgelegten Namen) dorthin - >> > dann wäre nämlich ein hardlink genau richtig >> Die Datei soll auf den Server und - sie soll immer dieselben Daten haben >> (Siehe oben) - konsequenter Weise auch den umbenannten Namen haben. >> Der hardlink bekommt aber von der Umbenennung der Ausgangsdatei nichts >> mit - so jedenfalls mein Verständnis bisher. Der Hardlink ist hier wirklich falsch. Was funktionieren würde ist eine Überwachung mit inotify (habe ich vor kurzem mal für einen ganz anderen Zweck was mit Perl::Inotify gebastelt, und war eigentlich unproblematisch) D.h. ein Prozess läuft die ganze Zeit und guckt auf den Webordner sowie auf die Ordner, auf die es Symlinks gibt. Ein neuer Symlink wird angelegt - der Prozess kann die Zuordnung in einer Datenbank speichern Die verlinkte Datei wird verschoben oder gelöscht: der Prozess erfährt es auch und kann den Symlink anpassen >> Wolfgang -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
participants (2)
-
Alex Winzer
-
hamann.w@t-online.de