Ha SSH-val eléri a szervert, fájlokat is másolhat rajta keresztül, titkosított kapcsolaton, külön FTP fiók nélkül. Három eszköz közül választhat:
- scp: egyszerű, egyszeri másolásra;
- rsync: nagy mennyiségű adathoz, költöztetéshez és ismételt szinkronizáláshoz, mert csak a változásokat viszi át, és megszakadás után folytatható;
- sftp: interaktív fájlkezeléshez, illetve grafikus programokkal (FileZilla, WinSCP, Cyberduck).
Mindhárom eszköz ugyanazt a felhasználónevet, jelszót vagy SSH kulcsot használja, mint az SSH bejelentkezés (lásd: Hogyan csatlakozzak a VPS-emhez SSH-n keresztül?). Linuxon, macOS-en és Windows 10/11-en (PowerShell) az scp és az sftp parancs alapból elérhető.
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
Az rsync-nek mindkét gépen telepítve kell lennie (sudo dnf install rsync vagy sudo apt install rsync).
rsync -avz --progress weboldal/ janos@203.0.113.10:/var/www/weboldal/
-a(archive): alkönyvtárakkal együtt másol, és megtartja a jogosultságokat, a tulajdonost és a módosítási időt,-v: kiírja a másolt fájlokat,-z: tömöríti az adatot átvitel közben (lassú kapcsolaton hasznos, gyors hálózaton elhagyható),--progress: mutatja az előrehaladást.
Ha a parancsot újra lefuttatja, csak a megváltozott fájlokat másolja, így egy megszakadt másolás egyszerűen folytatható.
Figyeljen a perjelre
A forrás végén lévő perjel (/) megváltoztatja az eredményt:
rsync -a weboldal/ cel/aweboldalmappa tartalmát másolja acelmappába;rsync -a weboldal cel/magát aweboldalmappát másolja, így az eredménycel/weboldal/lesz.
További hasznos kapcsolók
# 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/
A --delete kapcsolót mindig előbb -n (próbafuttatás) kapcsolóval próbálja ki: ha a forrást vagy a célt elgépeli, a célon lévő fájlok törlődhetnek.
Költöztetés két szerver között
Szerverköltöztetésnél a leggyorsabb, ha az rsync-et közvetlenül az új szerveren futtatja, és a régiről húzza át az adatokat, így azok nem a saját internetkapcsolatán keresztül mennek:
# Az új szerveren futtatva
rsync -avz --progress janos@regi.szerver.ip:/var/www/ /var/www/
Hosszabb másolásnál futtassa a parancsot tmux-ban vagy screen-ben, hogy a kapcsolat megszakadása ne állítsa le (lásd: Parancsok futtatása megszakadó SSH kapcsolat mellett).
sftp
Az sftp interaktív kapcsolatot nyit, amelyben parancsokkal böngészheti a szerver fájljait:
sftp janos@203.0.113.10
| Parancs | Jelentés |
|---|---|
ls, cd, pwd |
listázás és könyvtárváltás a szerveren |
lls, lcd, lpwd |
ugyanez a saját gépen |
put fajl |
feltöltés (put -r mappa egész mappát) |
get fajl |
letöltés (get -r mappa egész mappát) |
rm, mkdir, rename |
törlés, mappa létrehozása, átnevezés |
exit |
kilépés |
Grafikus felülethez használjon SFTP-t támogató programot (például FileZilla, WinSCP vagy Cyberduck): protokollként válassza az SFTP-t, és adja meg a szerver címét, a 22-es (vagy saját) SSH portot, valamint a felhasználónevet és a jelszót vagy a kulcsot.
Nagy mappa átvitele egy lépésben
Sok kis fájl (például egy WordPress oldal) átvitele gyorsabb, ha menet közben egyetlen archívummá csomagolja:
tar -czf - weboldal/ | ssh janos@203.0.113.10 "tar -xzf - -C /var/www/"
A tar használatáról bővebben: tar.gz archívum készítése és kicsomagolása.