−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.

Комментарии

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

Оставить комментарий

Комментарии проходят модерацию перед публикацией.