Wenn Sie über SSH auf den Server zugreifen, können Sie darüber auch Dateien kopieren – über eine verschlüsselte Verbindung und ohne separates FTP-Konto. Sie haben die Wahl zwischen drei Tools:
- scp: einfach, für einmalige Kopiervorgänge;
- rsync: für große Datenmengen, Datenmigrationen und wiederholte Synchronisierungen, da nur die Änderungen übertragen werden und der Vorgang nach einer Unterbrechung fortgesetzt werden kann;
- SFTP: für die interaktive Dateiverwaltung sowie für grafische Programme (FileZilla, WinSCP, Cyberduck).
Alle drei Tools verwenden denselben Benutzernamen, dasselbe Passwort oder denselben SSH-Schlüssel wie bei der SSH-Anmeldung (siehe: Wie stelle ich über SSH eine Verbindung zu meinem VPS her?). Unter Linux, macOS und Windows 10/11 (PowerShell) sind die Befehle „scp“ und „sftp“ standardmäßig verfügbar.
scp
# Fájl feltöltése a szerverre
scp mentes.sql janos@203.0.113.10:/home/janos/
# Fájl letöltése a szerverről az aktuális könyvtárba
scp janos@203.0.113.10:/var/log/nginx/error.log .
# Teljes mappa feltöltése
scp -r weboldal/ janos@203.0.113.10:/var/www/
# Nem alapértelmezett SSH port (nagy P betűvel!)
scp -P 2255 mentes.sql janos@203.0.113.10:/home/janos/
rsync
rsync muss auf beiden Rechnern installiert sein (sudo dnf install rsync oder sudo apt install rsync).
rsync -avz --progress weboldal/ janos@203.0.113.10:/var/www/weboldal/
-a(Archiv): Kopiert einschließlich aller Unterverzeichnisse und behält die Berechtigungen, den Eigentümer sowie das Änderungsdatum bei,-v: listet die kopierten Dateien auf,-z: komprimiert die Daten während der Übertragung (nützlich bei langsamen Verbindungen, kann bei schnellen Netzwerken weggelassen werden),--progress: Zeigt den Fortschritt an.
Wenn Sie den Befehl erneut ausführen, werden nur die geänderten Dateien kopiert, sodass ein unterbrochener Kopiervorgang problemlos fortgesetzt werden kann.
Achten Sie auf den Schrägstrich
Der Schrägstrich (/) am Ende der Quelle verändert das Ergebnis:
rsync -a weboldal/ cel/: Kopiert den Inhalt des Ordners „weboldal“ in den Ordner „cel“;rsync -a weboldal cel/kopiert den Ordner „weboldal“ selbst, sodass das Ergebnis „cel/weboldal/“ lautet.
Beim Test (AlmaLinux 10.2) waren nach der ersten Variante die Dateien „a.php“, „cache“ und „e.log“ das Ziel, bei der zweiten Variante lediglich ein weboldal-Ordner.
Weitere nützliche Links
# Próbafuttatás: kiírja, mit csinálna, de nem másol semmit
rsync -avn weboldal/ janos@203.0.113.10:/var/www/weboldal/
# Nem alapértelmezett SSH port
rsync -avz -e "ssh -p 2255" weboldal/ janos@203.0.113.10:/var/www/weboldal/
# Mappák kihagyása
rsync -avz --exclude 'cache/' --exclude '*.log' weboldal/ janos@203.0.113.10:/var/www/weboldal/
# A célon törli azokat a fájlokat, amelyek a forrásban már nincsenek meg
rsync -avz --delete weboldal/ janos@203.0.113.10:/var/www/weboldal/
Testen Sie die Option „--delete“ stets zunächst mit der Option „-n“ (Testlauf): Sollten Sie sich bei der Eingabe der Quelle oder des Ziels vertippen, können die Dateien am Zielort gelöscht werden. Beim Testlauf gibt „rsync“ aus, was gelöscht würde (im Test „deleting regi.txt“), am Ende der Ausgabe steht „(DRY RUN)“, und die Datei ist tatsächlich an ihrem Platz geblieben.
Migration zwischen zwei Servern
Bei einer Servermigration ist es am schnellsten, wenn Sie rsync direkt auf dem neuen Server ausführen und die Daten vom alten Server übertragen, sodass diese nicht über Ihre eigene Internetverbindung geleitet werden:
# Az új szerveren futtatva
rsync -avz --progress janos@regi.szerver.ip:/var/www/ /var/www/
Führen Sie bei längeren Kopiervorgängen den Befehl in tmux oder screen aus, damit die Verbindung nicht unterbrochen wird (siehe: Befehle bei einer unterbrochenen SSH-Verbindung ausführen).
sftp
sftp stellt eine interaktive Verbindung her, über die Sie mithilfe von Befehlen die Dateien auf dem Server durchsuchen können:
sftp janos@203.0.113.10
| Befehl | Bericht |
|---|---|
ls, cd, pwd |
Verzeichnisauflistung und Verzeichniswechsel auf dem Server |
lls, lcd, lpwd |
Das Gleiche auf Ihrem eigenen Rechner |
put fajl |
Hochladen (Befehl „put -r mappa“ für den gesamten Ordner) |
get fajl |
Herunterladen (Befehl „get -r mappa“ für den gesamten Ordner) |
rm, mkdir, rename |
Löschen, Ordner erstellen, umbenennen |
exit |
Abmelden |
Verwenden Sie für die grafische Benutzeroberfläche ein Programm, das SFTP unterstützt (z. B. FileZilla, WinSCP oder Cyberduck): Wählen Sie als Protokoll „SFTP“ aus und geben Sie die Serveradresse, den SSH-Port 22 (oder Ihren eigenen), sowie den Benutzernamen und das Passwort oder den Schlüssel ein.
Übertragung eines großen Ordners in einem Schritt
Die Übertragung vieler kleiner Dateien (beispielsweise einer WordPress-Website) erfolgt schneller, wenn Sie diese während des Vorgangs zu einem einzigen Archiv zusammenfassen:
tar -czf - weboldal/ | ssh janos@203.0.113.10 "tar -xzf - -C /var/www/"
Weitere Informationen zur Verwendung von „tar“: Erstellen und Entpacken von tar.gz-Archiven.