Если нужно быстро закинуть файлы на сервер — вот практичные варианты: от простого 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% задач по загрузке файлов на сервер.