−25%

na Windows przy płatności rocznej, do 31.10. Do planów

EQVPS

Jak przesyłać pliki na VPS: scp, rsync i SFTP

Kopiuj pliki na serwer i z niego przez scp, synchronizuj duże katalogi przez rsync ze wznawianiem albo użyj klienta SFTP, także na NAT z własnym portem SSH.

Prędzej czy później pliki muszą trafić na serwer: build strony, zrzut bazy danych, konfiguracja napisana lokalnie. Nie potrzebujesz do tego serwera FTP: SSH daje ci już trzy dobre narzędzia. Wszystkie przykłady używają adresów dokumentacyjnych; zamień je na adresy swojego serwera.

Poznaj swoje dane połączenia

scp: kopiowanie pliku lub katalogu

Wysłanie pliku:

scp backup.sql root@203.0.113.10:/root/

Pobranie pliku:

scp root@203.0.113.10:/var/log/nginx/access.log .

Cały katalog:

scp -r ./site root@203.0.113.10:/var/www/

Na planie NAT dodaj port z wielkim -P:

scp -P 20123 backup.sql root@your-nat-host:/root/

rsync: właściwe narzędzie do katalogów

rsync wysyła tylko różnice, pokazuje postęp i wznawia pracę po zerwaniu połączenia. Musi być zainstalowany po obu stronach (apt install -y rsync).

rsync -avzP ./site/ root@203.0.113.10:/var/www/site/

Z niestandardowym portem SSH:

rsync -avzP -e "ssh -p 20123" ./site/ root@your-nat-host:/var/www/site/

Aby cel był dokładnym lustrem (z usunięciem plików, które skasowałeś lokalnie), dodaj --delete, ale najpierw sprawdź, co się stanie:

rsync -avzP --delete --dry-run ./site/ root@203.0.113.10:/var/www/site/

Uważaj na ukośnik na końcu. ./site/ kopiuje zawartość site; ./site kopiuje sam katalog do miejsca docelowego. Przy --delete ta różnica decyduje, który katalog zostanie wyczyszczony.

SFTP: interaktywnie albo graficznie

Klient wiersza poleceń działa jak mały menedżer plików:

sftp -P 20123 root@your-nat-host
sftp> put backup.sql
sftp> get /etc/nginx/nginx.conf
sftp> exit

Wolisz interfejs graficzny? FileZilla, WinSCP czy Cyberduck łączą się z tymi samymi danymi: protokół SFTP, twój host, port 22 (albo twój port NAT), użytkownik root i twój klucz SSH albo hasło.

Szybciej z kluczami SSH

Wszystkie te narzędzia korzystają z SSH, więc klucz SSH eliminuje pytania o hasło i pozwala automatyzować transfery z crona. Jeśli jeszcze tego nie zrobiłeś: uwierzytelnianie kluczem SSH. Nowe serwery EQVPS przyjmują hasło roota z panelu, dopóki nie przejdziesz na klucze, co radzimy zrobić pierwszego dnia.

Duże transfery

Przy dziesiątkach gigabajtów rsync to jedyny rozsądny wybór: jeśli połączenie zostanie zerwane, uruchom to samo polecenie jeszcze raz, a będzie kontynuował od miejsca, w którym przerwał. Uruchamiaj go w tmux albo screen na maszynie wysyłającej, żeby zamknięcie laptopa go nie przerwało.

Powiązane

FAQ

Czym różni się scp od rsync?

scp za każdym razem kopiuje wszystko. rsync porównuje obie strony i wysyła tylko to, co się zmieniło, potrafi wznawiać przerwane transfery i tworzyć lustro katalogu. Do jednego pliku wystarczy scp; do katalogów, które często synchronizujesz, używaj rsync.

Jak użyć niestandardowego portu SSH?

scp i sftp używają wielkiego -P (scp -P 20123), ssh małego -p, a rsync przyjmuje go tak: rsync -e 'ssh -p 20123'. Na planach NAT w EQVPS osobisty port SSH jest podany w panelu.

Czy mogę użyć klienta graficznego?

Tak. Każdy klient SFTP (FileZilla, WinSCP, Cyberduck) działa z tym samym hostem, portem, użytkownikiem i kluczem SSH albo hasłem, których używasz do SSH. Wybierz protokół SFTP, nie FTP.

Czy to działa z Windowsa?

Windows 10 i 11 mają wbudowany OpenSSH, więc scp i sftp działają w PowerShellu dokładnie tak jak tutaj. rsync nie jest wbudowany; używaj go przez WSL albo skorzystaj z funkcji synchronizacji w WinSCP.

Co oznacza ukośnik na końcu w rsync?

'rsync -a site/ dest/' kopiuje zawartość site do dest. 'rsync -a site dest/' tworzy dest/site. Pomyłka przy --delete może wyczyścić zły katalog, więc najpierw uruchom polecenie z --dry-run.

Komentarze

Brak komentarzy. Bądź pierwszy.

Zostaw komentarz

Komentarze są moderowane przed pojawieniem się.