Linux zwei Ordner synchronisieren?
Hallo,
Ist es möglich bei Linux (Debian 9) zwei Ordner zu synchronisieren?
Ich meine folgendes:
Ich lade etwas hoch in Ordner A und es wird in Ordner B kopiert, ich lösche etwas in Ordner B und es wird auch in Ordner A gelöscht, usw.
Wäre das möglich?
Vielen Dank schon mal im voraus.
LG
Endivie02
4 Antworten
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 .
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.
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
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.
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
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 !!
Ja, werde darüber berichten (wenn ich es nicht vergesse xd)
Es funktioniert. Ich kann nun mit meinem chroot user die Ordner bearbeiten.
Vielen Dank für die Hilfe
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 *
da war ich dicht dran: nur bind und none vertauscht
<Quellverzeichnis> <Zielverzeichnis> none bind
wirst es schnell gefunden haben.
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.
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
Schulaufgabe ?
Klingt nach Linux Trainig :-)
Könnte man mit einem Script erledigen , paar Zeilen rein ,fertig.
Hilfst auch im neuen Jahr mit deinen reichen Erfahrungen. Auf Sript währe ich nie gekommen.
Wenn ich
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?