Von Server zu Server kopieren (SSH)

Spinx

New Member
Hallo,

heute kam mein neuer Homeserver da mein alter zu Schwach geworden ist. Nun möchte ich gerne vom alten Server lediglich 2 Verzeichnisse auf den neuen kopieren /home/work und /etc/work.

Das ganze sollte via Console passieren (Putty). Was könnt Ihr mir da empfehlen?
 
Fast, du musst beim Zielhost auch das Zielverzeichnis angeben. Und ggf. einen alternativen SSH-Port, da sind die Implementierungen aber je OS etwas unterschiedlich. Irgendwas mit -P am Anfang sollte es sein, ich nutze fast nur rsync.

Edit: Wenn du nichts verhauen willst, versuch es mal mit rsync samt "--dry-run"-Parameter. Dann tut er nur so, als täte er was.
 
Ah ok.
Bevor ich mir nun was verhaue

scp -r /home/work/ root@alte-server-ip

ist dies so richtig?

öhm, das würde von dem Server, auf dem Du bist, das lokale Verzeichnis auf den alten Server kopieren - klingt nicht nach dem, was Du lt. Beschreibung wolltest...
 
Ohne jetzt lange daüber nachzudenken, arbeitet scp wie der Befehl cp.

Code:
scp  [[user]@host:]quelle [user@]host:ziel

Code:
scp -r /home/work/ root@neue-server-ip:/home/work/
Beim dem Befehl würde folgendes passieren:
  1. scp schneidet den letzten 'slash' von der Quelle ab
  2. dadurch ist dann das Verzeichnis kopiert
  3. das Verzeichnis wird nach neue-server-ip:/home/work/ kopiert
  4. d.h. du wirst die Daten des Verzeichnisses work in /home/work/work auf dem neuen Server vorfinden

Wenn du direkt nach /home/work kopieren willst und dort nichts drin ist, was überschrieben werden könnte und auch der Verzeichnisname sich nicht ändern soll, kannst du neuer-server-ip:/home/ kopieren.

Solltest du folgendes verwenden:
Code:
scp -r /home/work/* root@neue-server-ip:/home/old_work/
Würden alle Dateien innerhalb /home/work (ausgeschlossen verstreckte Dateien mit punkt als präfix) nach neue-server-ip:/home/old_work/ kopiert werden. Das Globbing (*.?) veranlasst die Shell dazu jeden Treffer als zusäzliches Argument dem Befehl zu übergeben. Hast du z.B. die Dateien .1, 1 und 2 im Verzeichnis, würde der Befehl in der Shell folgende Argumente an scp weitergeben:
Code:
scp -r /home/work/1 /home/work/2 root@neue-server-ip:/home/old_work/

.1 wird ausgelassen.

Da der Befehl wie cp aufgebaut sein sollte, gilt:
Code:
scp quelle [quelle_n...] ziel

Ich hoffe, dass ich das verständlich erklärt habe. In den manpages und mit google wirst du sicherlich bessere Erklärungen als meine finden. Man sollte das Globbing und die genaue Funktionsweise von cp verstanden haben. Manchmal verhält sich der Befehl anders, als man im ersten Moment denkt. Da können schon komische Sachen zustande kommen. Du machst es zwar in deinem Beispiel schon, aber versuch dir anzugewöhnen bei solchen Vorgängen immer abspolute Pfade zu verwenden. Machst du das nicht und setzt es z.B. in Scripten ein, kommen die dollsten Ergebnisse bei raus.

Wenn du das alles verstanden hast und es auf der Kommandozeile beherscht, dann installier dir mal mc. Der kann unter anderem sftp, ftp und samba müsste auch möglich sein.
 
Last edited by a moderator:
Edit:
Beim überfliegen scp mit rsync vertauscht. Sorry. Für scp ist das von DeaD_EyE beschriebene Verhalten vollkommen korrekt.
 
Last edited by a moderator:
Alternativ

"apt-get install mc"

und mit dem Midnight Commander auf der Konsole grafisch kopieren, wenn man sich unsicher ist.
 
Ok, hab mich etwas unglücklich ausgedrückt. Bei cp kann man es mit "--strip-trailing-slashes" einschalten. Bei scp (rsync != scp) gibt es diesen Optionsschalter anscheinend nicht. Es war eine Annahme meinerseits.

Wie ich beschrieben habe, tritt es auf. Das Verzeichnis work wird in das Verzeichnis /home/work kopiert. Also hast du am Ende den Inhalt auf dem neuen Server in /home/work/work/. Ist das so erwünscht? Existier work bereits auf dem neuen Server? Falls nicht und die Berechtigungen ausreichen, wird das Verzeichnis dort erstellt und der Inahlt von work dort reinkopiert. Falls es existiert, wird das Verzeichnis work nach /home/work kopiert. Das hatte ich versucht zu erklären.

Bei dem Workaround hab ich doch bereits geschrieben, dass versteckte Dateien (mit .) nicht kopiert werden.
 
Back
Top