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ß:Berufserfahrung
Endivie02 
Fragesteller
 26.01.2020, 22:40

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
guenterhalt  27.01.2020, 07:12
@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
Endivie02 
Fragesteller
 27.01.2020, 11:19
@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
guenterhalt  27.01.2020, 11:46
@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
Endivie02 
Fragesteller
 27.01.2020, 11:54
@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
guenterhalt  27.01.2020, 11:59
@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
Endivie02 
Fragesteller
 27.01.2020, 14:44
@guenterhalt

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

0
Endivie02 
Fragesteller
 28.01.2020, 15:11
@guenterhalt

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

0
guenterhalt  28.01.2020, 16:18
@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  12.02.2020, 08:09
@guenterhalt

da war ich dicht dran: nur bind und none vertauscht

 <Quellverzeichnis>    <Zielverzeichnis>   none bind 

wirst es schnell gefunden haben.

0

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

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

Schulaufgabe ?

Klingt nach Linux Trainig :-)

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

Woher ich das weiß:Berufserfahrung
guenterhalt  26.01.2020, 17:15

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

0