Problem:
Z.B. falls man einen Server bestellt hat, will man alle Dateien von einem auf den anderen transferieren. Dabei nennen wir jetzt mal die Server server_alt.de
und server_neu.de
.
Das größte Problem ist meißt (gerade bei Webauftritten): Wie bleiben die Benutzerrechte erhalten?
Die std. Antwort lautet i.d.R.: Erst mit tar
ein Paket packen.
Dazu muß man beachten, daß der Datei-User als UID (User-ID) eingetragen ist. Diese bestehende UID wird aber in den meisten Fällen von der neuen UID abweichen. Ein chown
ist i.d.R. immer nochmal angesagt. Ein chmod
(also die Schreibrechte) hingegen wird immer mit gespeichert.
Lösungen:
Hier werden nun 3 Möglichkeiten vorgestellt. Meistens sollte man auf die scp
zurückgreifen, da dies die schnellste und einfachste ist.
1. Transfer über Web (http)
#auf server_alt.de: cd /ein/httpdocs/verzeichnis/ #evtl. vorher die Dateien packen: tar -czf gepackt.tgz *
#auf server_neu.de:
cd /in/das/ziel/verzeichnis/
wget http://server_alt.de/gepackt.tgz
tar -xzf gepackt.tgz
Der Aufwand ist relativ hoch, da man auf beiden Server arbeiten muß.
2. Transfer per FTP
Einzelne Dateien übertragen:
#auf server_neu.de: cd /ziel/verzeichnis ftp server_alt.de # [username] & [password] eingeben get dateiname.tgz quit
Nachteil: viel Tiparbeit.
Vorteil: Die Benutzerrechte werden bereits korrekt übernommen.
Brauchbar, wenn man nur einzelne Dateien (z.B. Tarballs) schnell holen will.
3. Transfer per scp
Der einfachste und schnellste Weg:
#auf server_alt.de: scp /var/www/domain.de/httpdocs/* root@server_neu.de:/var/www/domain.de/httpdocs/ #oder auf server_neu.de: scp root@server_alt.de:/var/www/domain.de/httpdocs/* /var/www/domain.de/httpdocs/
Nachteil:
Auf server_neu.de
muß noch ein chown
durchgeführt werden. (Nicht, wenn der neue User Shell-Rechte hat und man im scp statt root
den User eintragen kann.)
Empfehlen kann man diese Methode vorallem für Datenbank-Dumps und alle Dateien, die nicht von Dritten gelesen werden dürfen (z.B. Zertifikate), da die Übertragung verschlüsselt stattfindet.