Hallo Liste, ich habe einen Quellrechner quelle.dyndns.org und einen Zielrechner ziel.dyndns.org Ich möchte als user1 (nicht root) den Ordner quelle.dyndns.org:/home/user1/public_html kopieren nach ziel.dyndns.org:/home/user1/public_html aber nur die jeweiligen Änderngen sollen übertragen werden. Die User-ID ist auf Quelle und Ziel identisch. Dafür wäre doch rsync das geeignete Tool ? Ist es für so eine simple Geschichte nötig auf dem Zielrechner den rsyncd laufen zu lassen ? In den man-pages heisst es : rsync *.c foo:src/ This would transfer all files matching the pattern *.c from the current directory to the directory src on the machine foo. Also sollte mein Befehl lauten : (aus dem Ordner /home/user1) rsync -r public_html ziel.dyndns.org:home/user1 das funktionert aber nicht ... Was mache ich falsch ? Frank
Hallo Frank, Frank Thiel schrieb:
ich habe einen Quellrechner quelle.dyndns.org und einen Zielrechner ziel.dyndns.org Ich möchte als user1 (nicht root) den Ordner quelle.dyndns.org:/home/user1/public_html kopieren nach ziel.dyndns.org:/home/user1/public_html aber nur die jeweiligen Änderngen sollen übertragen werden. Die User-ID ist auf Quelle und Ziel identisch.
Dafür wäre doch rsync das geeignete Tool ?
Ja.
Ist es für so eine simple Geschichte nötig auf dem Zielrechner den rsyncd laufen zu lassen ? Nein, zumindest nicht, wenn du einen SSH-Dämon auf dem Zielhost hast und du dich dort als user1 anmelden kannst.
rsync -r public_html ziel.dyndns.org:home/user1
Keine Ahnung, ob das funktioniert, folgendes sollte aber gehen: rsync -avz [ --delete] -e ssh public_html ziel.dyndns.org:/home/user1 Hinter public_html darf hier _kein_ Slash stehen! Siehe Manpage, Abschnitt Usage, 2. & 3. Bsp. Es macht auch einen Unterschied, ob du ziel.dyndns.org:/home/user1 oder ziel.dyndns.org:home/user1 als Ziel eingibst. Letzteres versteht home/user1 relativ zum Homepfad des Benutzers, also dürfte /home/user/home/user als Zielverzeichnis dabei herauskommen. "-e ssh" sorgt darür, dass alles über eine SSH-Verbindung geschickt wird, weswegen du den rsyncd nicht brauchst Per "--delete" erhältst du eine 1:1 Kopie deines Verzeichnisbaums. Gruß, Sven
Hallo Sven, danke das funktioniert. Da ich viele user habe wäre es sinnvoll ein Skript "update" für alle zur Verfügung zu stellen ______________________________ ! /bin/bash rsync -avz -e ssh /home/user1/public_html/* m23s20.vlinux.de:/home/user1/ public_html ______________________________ wie kann ich das global zur Verfügung stellen (also zB in /bin), sodass jeder user1,user2,user3 an der Konsole "update" tippt, und der Befehl dann für ihn speziell ausgeführt wird ? Also irgednwie rsync -avz -e ssh /home/$user/public_html/* m23s20.vlinux.de:/home/$user/ public_html wobei für $user eben der ensprechend aktive user eingetragen wird .... Am Samstag, 2. Oktober 2004 15:26 schrieb Sven Niese:
Hallo Frank,
Frank Thiel schrieb:
ich habe einen Quellrechner quelle.dyndns.org und einen Zielrechner ziel.dyndns.org Ich möchte als user1 (nicht root) den Ordner quelle.dyndns.org:/home/user1/public_html kopieren nach ziel.dyndns.org:/home/user1/public_html aber nur die jeweiligen Änderngen sollen übertragen werden. Die User-ID ist auf Quelle und Ziel identisch.
Dafür wäre doch rsync das geeignete Tool ?
Ja.
Ist es für so eine simple Geschichte nötig auf dem Zielrechner den rsyncd laufen zu lassen ?
Nein, zumindest nicht, wenn du einen SSH-Dämon auf dem Zielhost hast und du dich dort als user1 anmelden kannst.
rsync -r public_html ziel.dyndns.org:home/user1
Keine Ahnung, ob das funktioniert, folgendes sollte aber gehen:
rsync -avz [ --delete] -e ssh public_html ziel.dyndns.org:/home/user1
Hinter public_html darf hier _kein_ Slash stehen! Siehe Manpage, Abschnitt Usage, 2. & 3. Bsp.
Es macht auch einen Unterschied, ob du ziel.dyndns.org:/home/user1 oder ziel.dyndns.org:home/user1 als Ziel eingibst. Letzteres versteht home/user1 relativ zum Homepfad des Benutzers, also dürfte /home/user/home/user als Zielverzeichnis dabei herauskommen.
"-e ssh" sorgt darür, dass alles über eine SSH-Verbindung geschickt wird, weswegen du den rsyncd nicht brauchst
Per "--delete" erhältst du eine 1:1 Kopie deines Verzeichnisbaums.
Gruß,
Sven
Gruß Frank
Am Samstag, 2. Oktober 2004 16:04 schrieb Frank Thiel:
Hallo Sven, danke das funktioniert. Da ich viele user habe wäre es sinnvoll ein Skript "update" für alle zur Verfügung zu stellen ______________________________ ! /bin/bash rsync -avz -e ssh /home/user1/public_html/* m23s20.vlinux.de:/home/user1/ public_html ______________________________
wie kann ich das global zur Verfügung stellen (also zB in /bin), sodass jeder user1,user2,user3 an der Konsole "update" tippt, und der Befehl dann für ihn speziell ausgeführt wird ? Also irgednwie
rsync -avz -e ssh /home/$user/public_html/* m23s20.vlinux.de:/home/$user/ public_html
das geht wenn man die Variable user1 gegen "$USER" in gross Buchstaben aus tauscht.
wobei für $user eben der ensprechend aktive user eingetragen wird ....
Am Samstag, 2. Oktober 2004 15:26 schrieb Sven Niese:
Hallo Frank,
Frank Thiel schrieb:
ich habe einen Quellrechner quelle.dyndns.org und einen Zielrechner ziel.dyndns.org Ich möchte als user1 (nicht root) den Ordner quelle.dyndns.org:/home/user1/public_html kopieren nach ziel.dyndns.org:/home/user1/public_html aber nur die jeweiligen Änderngen sollen übertragen werden. Die User-ID ist auf Quelle und Ziel identisch.
Dafür wäre doch rsync das geeignete Tool ?
Ja.
Ist es für so eine simple Geschichte nötig auf dem Zielrechner den rsyncd laufen zu lassen ?
Nein, zumindest nicht, wenn du einen SSH-Dämon auf dem Zielhost hast und du dich dort als user1 anmelden kannst.
rsync -r public_html ziel.dyndns.org:home/user1
Keine Ahnung, ob das funktioniert, folgendes sollte aber gehen:
rsync -avz [ --delete] -e ssh public_html ziel.dyndns.org:/home/user1
Hinter public_html darf hier _kein_ Slash stehen! Siehe Manpage, Abschnitt Usage, 2. & 3. Bsp.
Es macht auch einen Unterschied, ob du ziel.dyndns.org:/home/user1 oder ziel.dyndns.org:home/user1 als Ziel eingibst. Letzteres versteht home/user1 relativ zum Homepfad des Benutzers, also dürfte /home/user/home/user als Zielverzeichnis dabei herauskommen.
"-e ssh" sorgt darür, dass alles über eine SSH-Verbindung geschickt wird, weswegen du den rsyncd nicht brauchst
Per "--delete" erhältst du eine 1:1 Kopie deines Verzeichnisbaums.
Gruß,
Sven
Gruß Frank
Mfg -- ========================================================================== Ralf Frohberg Network Kassen-System / / (_)__ __ ____ __ Alte Heerstr. 86 Windows System / /__/ / _ \/ // /\ \/ / 41564 Kaarst -- Germany Administrator /____/_/_//_/\_,_/ /_/\_\ E-Mail frohby@fesnet.de Version SuSE 9.1 2.6.5 ==========================================================================
Frank Thiel wrote:
wie kann ich das global zur Verfügung stellen (also zB in /bin), sodass jeder user1,user2,user3
besser in /usr/local/bin
an der Konsole "update" tippt, und der Befehl dann für ihn speziell ausgeführt wird ? Also irgednwie
rsync -avz -e ssh /home/$user/public_html/* m23s20.vlinux.de:/home/$user/ public_html
wobei für $user eben der ensprechend aktive user eingetragen wird ....
Fast richtig :) Die bash stellt per default eine Variable $USER zur Verfügung. Und, um gleich der ssh-Passwort-Frage vorzubeugen: Auf dem Quellhost "ssh-keygen" und die dabei erstellte ~/.ssh/id_rsa.pub (oder wie auch immer Du die Datei nennst) an die Datei ~/.ssh/authorized_keys auf dem Zielhost anhängen. Dann entfällt auch die Passworteingabe bei Deinem Script. Gruß Jens
Am Samstag, 2. Oktober 2004 14:44 schrieb Frank Thiel:
Hallo Liste, ich habe einen Quellrechner quelle.dyndns.org und einen Zielrechner ziel.dyndns.org Ich möchte als user1 (nicht root) den Ordner quelle.dyndns.org:/home/user1/public_html kopieren nach ziel.dyndns.org:/home/user1/public_html aber nur die jeweiligen Änderngen sollen übertragen werden. Die User-ID ist auf Quelle und Ziel identisch.
Dafür wäre doch rsync das geeignete Tool ?
Kuck dir mal die SuSE-FAQ an http://suse-linux-faq.koehntopp.de/q/q-backup-rsync.html HTH Andy
Am Samstag, 2. Oktober 2004 14:44 schrieb Frank Thiel:
Also sollte mein Befehl lauten : (aus dem Ordner /home/user1)
rsync -r public_html ziel.dyndns.org:home/user1
Nö, das abschließende / vom Zielverzeichnis fehlt und das am Anfang auch.
das funktionert aber nicht ...
Fehlermeldung bitte. -- Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/ | http://packman.links2linux.de/ Manfred | http://www.knightsoft-net.de
participants (6)
-
Frank Thiel
-
Jens Tautenhahn
-
Manfred Tremmel
-
Ralf Frohberg
-
suse-linux@t-online.de
-
Sven Niese