SCP — это простая и надёжная команда для копирования файлов и папок между твоей машиной и удалёнными серверами, а ещё между двумя серверами напрямую.

Главное — всё идёт по SSH, значит, файлы и пароль шифруются. Если кто-то пытается подслушать — получит кучу мусора.

Синтаксис команды

scp [опции] [user@]src_host:]файл_или_папка [user@]dest_host:]куда_копировать

Опции — всякие штуки: какой порт, рекурсивно копировать, сжимать и прочее.

src_host и dest_host — либо твой комп, либо удалёнка (если удалёнка, то указывай user@хост).

Путь к файлу — абсолютный или относительный.

Самые полезные опции:

  • -P — указать SSH-порт (если не 22).
  • -p — сохранить дату изменения и доступа.
  • -q — тишина, без прогресса и ошибок.
  • -C — сжать данные, чтоб побыстрее.
  • -r — рекурсивно копировать папки целиком.

Перед тем, как копать

SCP работает через SSH — значит нужен пароль или ключ. Иначе оно просто не пустит.

Если копируешь файлы с одинаковыми именами — предупреждений не будет. Перезапишет, как будто так и надо.

Для больших файлов запускай через screen или tmux, чтобы не потерять процесс при обрыве сессии.

Копируем локальный файл на удалёнку

scp file.txt user@10.10.0.2:/путь/куда/копировать

Пароль запросит — вводи, пока не забыли.

Если хочешь изменить имя на удалёнке:

scp file.txt user@10.10.0.2:/путь/куда/копировать/новое_имя.txt

Если SSH-сервер на нестандартном порту:

scp -P 2222 file.txt user@10.10.0.2:/путь/куда/копировать

Для папок не забудь про -r:

scp -r /локальная/папка user@10.10.0.2:/удалённая/папка

Копируем удалённый файл к себе

scp user@10.10.0.2:/удалённый/путь/file.txt /локальный/путь/

Копируем между двумя удалёнными серверами сразу

scp user1@host1.com:/путь/файл user2@host2.com:/путь/куда

Тут попросят пароли от обеих машин. Трафик пойдёт напрямую между серверами.

Если хочешь, чтобы трафик шёл через свою машину (на которой запускаешь команду):

scp -3 user1@host1.com:/путь/файл user2@host2.com:/путь/куда

Итог

SCP — простая и бесшумная команда для быстрой и защищённой передачи файлов между машинами. Без излишеств, с минимумом настроек и максимумом надёжности. Если хочешь чего-то сложнее — иди в rsync, но для базовых задач SCP рулит.