Linux zwei Ordner synchronisieren?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Geht es dir wirklich um zwei Directories?

Wenn auch das Löschen synchron erfolgen soll, hat man keine Kopie einer Datei. Weg ist dann weg.

Sollen die Verzeichnisse z.B. unterschiedliche Namen in unterschiedlichen Verzeichnissen (auch in unterschiedlichen Home-Verzeichnissen ) haben, dann bietet sich mounten an

Probiere es aus: /home/meinHome/Downloads soll auch in /home/andererUser/ mit dem Namen runtergeladen stehen.

Als root ausführen:

mount --bind /home/meinHome/Downloads /home/andereUser/runtergeladen

Beide sind dann immer gleich. Musst aber die Zugriffsrechte beachten.

Permanent dann durch Eintrag in der /etc/fstab .

Woher ich das weiß:Beruf – openSuSE seit 1995

Wenn ich

mount --bind /home/meinHome/Downloads /home/andereUser/runtergeladen

eingebe würde es beide Verzeichnisse in Echtzeit synchronisieren?

Auch wenn der User, dem das eine Verzeichnis gehört, per chroot in diesem Ordner gefangen ist?

0
@Endivie02

Synchronisiert nicht, es ist ja das gleiche Verzeichnis. Was bei chroot passiert, da bin ich überfragt, kann es aber z.Z. nicht ausprobieren, bin im Smartphone "gefangen".

chroot würde aber auch bedeuten, in diesem Verzeichnis muss dann schon ein großer Teil des Betriebssystems stecken.

0
@guenterhalt

Ein großer Teil muss da jetzt nicht drinne stecken... Es reichen eigentlich fast nur die Teile für sFTP (auf mehr hat dieser User nämlich nicht Zugriff).

Der synchronisierte Ordner wird dann im Home-Verzeichnis des Users liegen damit die Teile des Betriebssystems nicht im Wege stehen.

Ich werde es einfach mal mit mount ausprobieren

0
@Endivie02

Auch SFTP benötigt Zugriff auf Libraries, auf Netzwerk- Routinen .. . Die müssen dann alle in diesem Ordner vorhanden sein. chroot ist da bestimmt nicht geeignet.

0
@guenterhalt

Also ich habe das mit chroot schon ausprobiert. Sonderlich viel musste ich dafür nicht kopieren.
sFTP funktioniert genau so wie es soll...
Mehr als Löschen, Uploaden und Bearbeiten wird ja eh nicht kommen... Genau diese Dinge haben jedenfalls funktioniert

0
@Endivie02

Es geht vielleicht, wenn du vorher das Verzeichnis mountest.

Wie schon gesagt, kann es derzeit nicht ausprobieren.

Du wirst darüber berichten?

Hier lesen andere mit !!

0
@guenterhalt

Ja, werde darüber berichten (wenn ich es nicht vergesse xd)

0
@guenterhalt

Es funktioniert. Ich kann nun mit meinem chroot user die Ordner bearbeiten.
Vielen Dank für die Hilfe

0
@Endivie02

mount --bind

kann auch durch einen Eintrag in der /etc/fstab erfolgen.

<Quellverzeichnis> <Zielverzeichnis> bind none

(merke mir so etwas nie genau, siehe lieber nochmal im Manual

man fstab oder man mount

nach.

Danke für den *

1
@guenterhalt

da war ich dicht dran: nur bind und none vertauscht

 <Quellverzeichnis>    <Zielverzeichnis>   none bind 

wirst es schnell gefunden haben.

0

Häufig wird rsync für Backup-Zwecke verwendet. Mit dem folgenden Beispiel-Kommando wird das Verzeichnis /home/ des Servers server.example.com hin zum lokalen Rechner in das Verzeichnis /mnt/server-mirror/home/ synchronisiert. Die Daten werden dabei über SSH getunnelt übertragen:

rsync -av --delete -e ssh root@server.example.com:/home/ /mnt/server-mirror/home/

Wenn rsync automatisert in einem Skript verwendet werden soll, kann die Authentifizierung etwa über einen SSH Key durchgeführt werden:

rsync -av --delete -e "ssh -i /home/user/.ssh/sshkey" root@server.example.com:/home/ /mnt/server-mirror/home/

Die gezeigten rsync Optionen haben folgende Bedeutung:

  • -a (Kurzversion für --archive): gleiche Bedeutung wie -rlptgoD
  • -r (Kurzversion für --recursive): Unterverzeichnisse kopieren
  • -l (Kurzversion für --links): symbolische Links kopieren
  • -p (Kurzversion für --perms): Rechte der Quelldatei beibehalten
  • -t (Kurzversion für --times): Zeiten der Quelldatei beibehalten
  • -g (Kurzversion für --group): Gruppenrechte der Quelldatei beibehalten
  • -o (Kurzversion für --owner): Besitzrechte der Quelldatei beibehalten (nur als root User möglich)
  • -D (Kurzversion für --devices --specials): Gerätedateien der Quelldatei beibehalten (nur als root User möglich)
  • -v (Kurzversion für --verbose): zeigt während der Ausführung an welche Dateien synchronisiert werden
  • --delete: entfernt Dateien im Zielverzeichnis die mittelerweile im Quellverzeichnis nicht mehr vorhanden sind
Woher ich das weiß:eigene Erfahrung

Schau Dir mal https://alternativeto.net/software/syncthing/about/ an. Ist eigentlich gedacht, um zwischen mehreren Maschinen zu synchronisieren aber vielleicht bekommst Du ja Deinen Anwendungsfall auch hin (zur Not über den Umweg über einen 2. Rechner). Schreib mal, ob das auch auf einem Rechner klappt, würde mich interessieren.

Woher ich das weiß:Recherche

Schulaufgabe ?

Klingt nach Linux Trainig :-)

Könnte man mit einem Script erledigen , paar Zeilen rein ,fertig.

Woher ich das weiß:Berufserfahrung

Hilfst auch im neuen Jahr mit deinen reichen Erfahrungen. Auf Sript währe ich nie gekommen.

0

Was möchtest Du wissen?