Передача файлов на сервер: руководство по SCP, SFTP и rsync
Полное руководство по синтаксису SCP, интерактивному режиму SFTP, rsync для синхронизации и резервного копирования, WinSCP и FileZilla для пользователей Windows.
Содержание
Передача файлов на сервер: руководство по SCP, SFTP и rsync
Существует несколько безопасных методов передачи файлов на Linux-сервер. SCP (Secure Copy Protocol), SFTP (SSH File Transfer Protocol) и rsync используют инфраструктуру SSH для зашифрованной передачи файлов. В этом руководстве рассматриваются все три инструмента и графические альтернативы для пользователей Windows.
Передача файлов с помощью SCP
SCP — простой и быстрый инструмент для копирования файлов через SSH.
Базовый синтаксис SCP
# Копировать локальный файл на сервер
scp /local/file.txt user@server-ip:/remote/directory/
# Копировать с сервера на локальный компьютер
scp user@server-ip:/remote/file.txt /local/directory/
# Копировать директорию (-r рекурсивно)
scp -r /local/directory/ user@server-ip:/remote/directory/
# Нестандартный порт (-P заглавная)
scp -P 2222 file.txt user@server-ip:/destination/
# С файлом SSH-ключа
scp -i ~/.ssh/id_rsa file.txt user@server-ip:/destination/
# Копирование между двумя удалёнными серверами
scp user1@server1:/file.txt user2@server2:/destination/
Параметры SCP
# Передача со сжатием (-C)
scp -C large-file.tar.gz user@server-ip:/destination/
# Показать прогресс (-v подробный вывод)
scp -v file.txt user@server-ip:/destination/
# Ограничить пропускную способность (КБ/с)
scp -l 1024 file.txt user@server-ip:/destination/
# Несколько файлов
scp file1.txt file2.txt user@server-ip:/destination/
# С маской
scp *.log user@server-ip:/var/log/backup/
SCP идеален для простого копирования файлов. Для синхронизации больших директорий или резервного копирования rsync эффективнее.
Передача файлов с помощью SFTP
SFTP — полнофункциональный протокол передачи файлов через SSH. Это безопасная альтернатива FTP.
Подключение SFTP
# Начать сессию SFTP
sftp user@server-ip
# С нестандартным портом
sftp -P 2222 user@server-ip
# С SSH-ключом
sftp -i ~/.ssh/id_rsa user@server-ip
Интерактивные команды SFTP
# Список удалённой директории
ls
ls -la
# Сменить удалённую директорию
cd /var/www/html
# Сменить локальную директорию
lcd ~/Downloads
# Загрузить файл (локальный → удалённый)
put file.txt
put -r /local/directory/ /remote/directory/
# Скачать файл (удалённый → локальный)
get file.txt
get -r /remote/directory/ /local/directory/
# Создать удалённую директорию
mkdir new-directory
# Удалить удалённый файл
rm file.txt
# Переименовать удалённый файл
rename old-name.txt new-name.txt
# Закрыть сессию SFTP
exit
Пакетные операции SFTP
# SFTP в пакетном режиме
sftp -b - user@server-ip << 'EOF'
cd /var/www/html
put index.html
put style.css
EOF
Синхронизация и резервное копирование с rsync
rsync — мощный инструмент для эффективной синхронизации файлов и директорий. Передаёт только изменённые файлы.
Базовый синтаксис rsync
# Синхронизировать локальную директорию с сервером
rsync -avz /local/directory/ user@server-ip:/remote/directory/
# Синхронизировать с сервера на локальный компьютер
rsync -avz user@server-ip:/remote/directory/ /local/directory/
# С нестандартным SSH-портом
rsync -avz -e "ssh -p 2222" /local/ user@server-ip:/remote/
# С SSH-ключом
rsync -avz -e "ssh -i ~/.ssh/id_rsa" /local/ user@server-ip:/remote/
Параметры rsync
# Полная команда резервного копирования
rsync -avzh --progress /var/www/ user@server-ip:/backup/www/
# Синхронизация с удалением
rsync -avz --delete /local/ user@server-ip:/remote/
# Сначала симуляция
rsync -avz --dry-run /local/ user@server-ip:/remote/
# Исключить определённые файлы
rsync -avz --exclude='*.log' --exclude='.git' /local/ user@server-ip:/remote/
# Ограничить пропускную способность (КБ/с)
rsync -avz --bwlimit=1024 /local/ user@server-ip:/remote/
Автоматическое резервное копирование с rsync
# Ежедневное резервное копирование с cron
crontab -e
# Резервное копирование каждую ночь в 02:00
0 2 * * * rsync -avz --delete /var/www/ user@backup-server:/backup/www/ >> /var/log/rsync-backup.log 2>&1
# Резервное копирование с датой
rsync -avz /var/www/ user@server-ip:/backup/www-$(date +%Y%m%d)/
Самая мощная функция rsync — алгоритм дельта-передачи: передаются только изменённые блоки. Если изменилась небольшая часть большого файла, rsync отправляет только эту изменённую часть, экономя значительную пропускную способность.
Графические интерфейсы для пользователей Windows
WinSCP
WinSCP — самый популярный SFTP/SCP-клиент для Windows.
Установка и подключение:
- Скачайте с winscp.net
- Создайте новую сессию:
- Протокол файлов: SFTP
- Адрес сервера: server-ip
- Порт: 22
- Имя пользователя и пароль
- Для SSH-ключа: Дополнительно → SSH → Аутентификация → Файл закрытого ключа
FileZilla
FileZilla — кроссплатформенный SFTP-клиент для Windows, macOS и Linux.
Настройка подключения:
- Скачайте с filezilla-project.org
- Менеджер сайтов → Новый сайт:
- Протокол: SFTP - SSH File Transfer Protocol
- Сервер: server-ip
- Порт: 22
- Подключиться
SSH-конфигурация для удобных подключений
# Редактировать ~/.ssh/config
nano ~/.ssh/config
Host my-server
HostName 203.0.113.50
User ubuntu
Port 22
IdentityFile ~/.ssh/id_rsa
# Теперь подключайтесь с коротким псевдонимом
scp file.txt my-server:/destination/
sftp my-server
rsync -avz /local/ my-server:/remote/
Устранение неполадок
Соединение отклонено
# Проверить SSH-соединение
ssh -v user@server-ip
# Проверить порт
nmap -p 22 server-ip
# Проверить брандмауэр
sudo ufw status
Заключение
SCP, SFTP и rsync — незаменимые инструменты для безопасной передачи файлов на Linux-серверы. Используйте SCP для простого копирования, SFTP для интерактивного управления и rsync для синхронизации и резервного копирования. Пользователи Windows могут получить доступ к той же функциональности через графические интерфейсы WinSCP или FileZilla.
Связанные статьи
Подключение к VDS по SSH: PuTTY, терминал и SSH-ключи
Пошаговое руководство по SSH-подключению к Linux VDS: PuTTY, терминал, аутентификация по ключу, правило фильтрации Path Panel и советы по безопасности.
Подключение к Windows VDS по RDP: полное руководство
Пошаговое руководство по RDP-подключению к Windows Server VDS: настройка, безопасность NLA, правило фильтрации Path Panel и устранение неполадок.
Смена ОС VDS-сервера: пошаговое руководство (Reinstall)
Смена операционной системы VDS через панель REXE: советы по резервному копированию, поддерживаемые дистрибутивы Linux и версии Windows Server.