Если нужно быстро закинуть файлы на сервер — вот практичные варианты: от простого scp до более продвинутого rsync.

1. Залить один файл

Через scp

scp file.txt user@server:/var/www/project/

Пример

scp index.php deploy@192.168.1.10:/var/www/html/

Если SSH на нестандартном порту (например 2222)

scp -P 2222 index.php deploy@192.168.1.10:/var/www/html/

Если используется SSH-ключ

scp -i ~/.ssh/id_rsa index.php deploy@server:/var/www/html/

2. Залить несколько файлов

Несколько конкретных файлов

scp file1.php file2.php config.php user@server:/var/www/project/

По маске

scp *.php user@server:/var/www/project/

3. Залить директорию целиком

scp -r project/ user@server:/var/www/

Флаг -r — рекурсивная передача директории.


4. Залить архив

Создать архив

tar -czf project.tar.gz project/

Отправить архив на сервер

scp project.tar.gz user@server:/var/www/

Распаковать на сервере

ssh user@server
tar -xzf /var/www/project.tar.gz -C /var/www/

5. Продвинутый способ — rsync (рекомендуется)

rsync удобен, если:

  • вы часто обновляете проект
  • нужно передавать только изменения
  • важна скорость и экономия трафика

Синхронизация директории

rsync -avz project/ user@server:/var/www/project/

Через нестандартный порт

rsync -avz -e "ssh -p 2222" project/ user@server:/var/www/project/

С удалением лишних файлов на сервере

rsync -avz --delete project/ user@server:/var/www/project/

Флаг --delete удаляет на сервере файлы, которых нет локально (удобно для деплоя).


6. Передача архива без сохранения на диск (pipe)

Если не хочется создавать архив локально:

tar -czf - project/ | ssh user@server "tar -xzf - -C /var/www/"

Архив создаётся на лету и сразу распаковывается на сервере.


Что использовать?

Сценарий Инструмент
Разово залить файл scp
Залить директорию scp -r
Частые обновления rsync
Быстро развернуть проект tar + ssh pipe

Вывод

  • Для разовых задач достаточно scp.
  • Для регулярных обновлений лучше использовать rsync.
  • Для деплоя проекта — стоит подумать о bash-скрипте или CI/CD.

Минимальный набор этих команд уже закрывает 90% задач по загрузке файлов на сервер.