6.4.4 Как скопировать файлы с сервера на сервер с помощью протокола SSH
Перемещение файлов между серверами – неотъемлемая часть работы системных администраторов и разработчиков. Давайте подробно рассмотрим три метода для копирования файлов между серверами, используя протоколы SSH. Расмотрим на примерах утилит SCP, Midnight Commander (MC) и Rsync.
Для начала работы, Вам нужно подключиться к серверу, с помощью протокола SSH.
Использование утилиты SCP
SCP (Secure Copy Protocol) – это протокол и командная утилита для безопасной копии файлов между компьютерами через SSH (Secure Shell). Она обеспечивает защищенную передачу данных и шифрование в процессе передачи. С помощью утилиты можно копировать как с удаленного сервера, так и на сам удаленный сервер.
Пример: копирования информации с локальной машины на удалённый сервер
Для копирования информации с локальной машины на удалённый сервер используйте команду вида:
- scp /путь/к/локальному/файлу пользователь@удаленный_сервер:/путь/на/удаленном/сервере/
- scp /var/www/user_name/data user@s1.thehost.com.ua:/var/www/user_name/data/
/var/www/user_name/data
: путь к каталогу локального и удаленного сервераuser
: пользователь, который должен иметь доступ к sshs1.thehost.com.ua
: адрес/ip удаленного сервера, в Вашем случае адрес, скорее всего, будет отличаться.
Пример: копирования информации с удалённого сервера на локальный компьютер
Для копирования информации с удалённого сервера на локальный компьютер используйте команду вида:
- scp пользователь@удаленный_сервер:/путь/на/удаленном/сервере/локальный_файл /путь/на/локальной/машине/
- scp user@s1.thehost.com.ua:/var/www/user_name/data /var/www/user_name/data/
Оба этих примера используют утилиту SCP для безопасного копирования файлов по протоколу SSH. Важно убедиться, что у Вас есть необходимые права и возможность получить доступ к файлам и каталогам как на удаленном, так и локальном серверах.
Использование утилиты MC
Midnight Commander (MC) – текстовый файловый менеджер для командной строки в Unix-подобных операционных системах. Он предоставляет удобный интерфейс для навигации по файловой системе, копирования, перемещения, удаления файлов, а также поддерживает архивацию и работу с удаленными серверами через протоколы FTP и SFTP. Midnight Commander является эффективным инструментом для управления файлами в текстовом режиме.
Утилита может отсутствовать на Вашем сервере. Вы всегда можете выполнить установку утилиты с помощью команды:
- apt-get install mc
- yum install mc
Пример: использования Midnight Commander
1. Откройте терминал.
2. Запустите Midnight Commander, введя команду:
- mc
3. В разделе Right выберите Shell link.
4. В появившемся окне введите адрес удаленного сервера, в следующем формате:
- sh://пользователь@удаленный_сервер/путь/на/удаленном/сервере/
пользователь
: пользователь удаленного серверудаленный_сервер
: адрес/ip удаленного сервера/путь/на/удаленном/сервере/
: путь к нужному каталогу
5. При первом подключении, нужно подтвердить ключ безопасности, прописав в консоли yes.
- Are you sure you want to continue connecting (yes/no)?
6. Теперь у Вас есть доступ к файлам и каталогам удаленного сервера, в правой панели.
7. Используйте стандартные команды MC, такие, как F5 (копировать), F6 (переместить), F8 (удалить), чтобы управлять файлами и каталогами на удаленном сервере.
8. Для завершения работы с MC, нажмите F10 или Esc, а затем 0 (ноль).
Использование утилиты Rsync
Rsync (Remote Sync) – утилита для синхронизации файлов и директорий между локальной и удаленной системой. Она обеспечивает эффективную передачу данных, пересылая только измененные части файлов и минимизируя объем передаваемой информации. Rsync часто используется для резервного копирования, обновления удаленных файлов и синхронизации данных между компьютерами через сеть. Утилита предоставляет гибкие опции конфигурации и является мощным инструментом для эффективной работы с данными.
Для работы с утилитой она должна быть установлена на обоих серверах. Eсли на каком-то она не установлена – установить ее можно командой:
- apt-get install rsync
- yum install rsync
Пример: копирования с локального сервера на удаленный сервер
- rsync -avr -e ssh --progress /путь/к/локальному/каталогу/ пользователь@удаленный_сервер:/путь/на/удаленном/сервере/
- rsync -avr -e ssh --progress /var/www/user_name/data/ user@s1.thehost.com.ua:/var/www/user_name/data/
Команда может включать дополнительные ключи, при формировании команды:
-a
,--archive
: режим архива, включает рекурсивное копирование, сохранение прав доступа, временных меток и прочих атрибутов файлов.-v
,--verbose
: подробный вывод, отображает информацию о процессе копирования.-z
,--compress
: сжатие данных во время передачи.-h
,--human-readable
: человеко-читаемый формат вывода.-e
,--rsh
: указание альтернативной команды для передачи данных (например, SSH).-u
,--update
: копировать только более новые файлы.-r
,--recursive
: рекурсивное копирование директорий.-n
,--dry-run
: операция “пробного запуска”, при которой не выполняются реальные изменения.--progress
: вывод информации о прогрессе передачи данных.--bwlimit=1000
: ключ ограничивает скорость передачи данных до 1000 килобайт в секунду. Может быть настроен, если нужно ограничить скорость передачи.
Пример: копирования с удаленного сервера на локальный компьютер
- rsync -avr -e ssh --progress пользователь@удаленный_сервер:/путь/на/удаленном/сервере/ локальный_каталог/
- rsync -avr -e ssh --progress user@s1.thehost.com.ua:/var/www/user_name/data/ var/www/user_name/data/
Эти примеры помогут Вам освоить использование команд для копирования файлов между серверами. Выберите метод в зависимости от Ваших предпочтений и требований Вашего проекта.