−25%

на річну оплату Windows, до 31.10. До тарифів

EQVPS

Як передавати файли на VPS: scp, rsync і SFTP

Копіюйте файли на сервер і назад через scp, синхронізуйте великі теки rsync із докачуванням або користуйтеся SFTP-клієнтом — зокрема на NAT зі своїм SSH-портом.

Рано чи пізно файли треба закинути на сервер: збірку сайту, дамп бази, конфіг, написаний локально. FTP-сервер для цього не потрібен — SSH уже дає три добрі інструменти. В усіх прикладах документаційні адреси; підставте адресу свого сервера.

Дізнайтеся параметри підключення

scp: скопіювати файл або теку

Завантажити файл:

scp backup.sql root@203.0.113.10:/root/

Звантажити:

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

Цілу теку:

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

На NAT-тарифі додайте порт через велику -P:

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

rsync: правильний інструмент для тек

rsync надсилає лише різницю, показує прогрес і продовжує з місця обриву. Він має стояти на обох боках (apt install -y rsync).

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

З нестандартним SSH-портом:

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

Щоб місце призначення стало точним дзеркалом (із видаленням файлів, які ви прибрали локально), додайте --delete — але спершу подивіться, що станеться:

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

Стежте за скісною рискою в кінці. ./site/ копіює вміст site; ./site копіює саму теку всередину місця призначення. З --delete ця різниця вирішує, яка тека спорожніє.

SFTP: інтерактивно або в графіці

Консольний клієнт працює як маленький файловий менеджер:

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

Хочете GUI? FileZilla, WinSCP чи Cyberduck підключаються з тими самими даними: протокол SFTP, ваш хост, порт 22 (або порт NAT), користувач root і ваш SSH-ключ чи пароль.

Швидше з SSH-ключами

Усі інструменти вище працюють поверх SSH, тож SSH-ключ прибирає запити пароля — і дозволяє запускати передачі з cron. Якщо ключа ще немає: автентифікація за SSH-ключем. Нові сервери EQVPS приймають пароль root із панелі, доки ви не перейдете на ключі, — і це ми радимо зробити першого ж дня.

Великі передачі

Для десятків гігабайтів розумний лише rsync: якщо з'єднання обірветься, запустіть ту саму команду знову — і він продовжить із місця зупинки. Запускайте його всередині tmux або screen на машині, що відправляє, щоб закриття ноутбука його не вбило.

Пов'язане

Часті питання

Чим scp відрізняється від rsync?

scp щоразу копіює все. rsync порівнює обидва боки й надсилає лише зміни, уміє докачувати перервані передачі й дзеркалити теку. Для одного файлу scp вистачає; для тек, які синхронізуєте регулярно, беріть rsync.

Як використати нестандартний SSH-порт?

scp і sftp приймають велику -P (scp -P 20123), ssh — малу -p, а rsync передає порт так: rsync -e 'ssh -p 20123'. На NAT-тарифах EQVPS персональний SSH-порт показано в панелі.

Чи можна користуватися графічним клієнтом?

Так. Будь-який SFTP-клієнт — FileZilla, WinSCP, Cyberduck — працює з тими самими хостом, портом, користувачем і SSH-ключем чи паролем, що й SSH. Обирайте протокол SFTP, а не FTP.

Чи працює це з Windows?

У Windows 10 і 11 вбудовано OpenSSH, тож scp і sftp працюють у PowerShell саме так, як тут написано. rsync у комплекті немає; використовуйте його з WSL або функцію синхронізації у WinSCP.

Що означає скісна риска в кінці шляху в rsync?

'rsync -a site/ dest/' копіює вміст site у dest. 'rsync -a site dest/' створює dest/site. Помилитеся в цьому з --delete — і можете стерти не ту теку, тому спершу запускайте з --dry-run.

Коментарі

Поки немає коментарів. Будьте першим.

Залишити коментар

Коментарі проходять модерацію перед публікацією.