6.4.4 Як скопіювати файли з сервера на сервер за допомогою протоколу SSH

Головний банер

Переміщення файлів між серверами є неот’ємною частиною роботи системних адміністраторів та розробників. Давайте детально розглянемо три методи для копіювання файлів між серверами, використовуючи протоколи SSH. Поглянемо на прикладах утиліт SCP, Midnight Commander (MC) та Rsync.

Для початку роботи Вам потрібно підключитися до сервера за допомогою протоколу SSH.

Використання утиліти SCP

SCP (Secure Copy Protocol) – це протокол та командний інструмент для безпечного копіювання файлів між комп’ютерами через SSH (Secure Shell). Він забезпечує захищений обмін даними та шифрування під час передачі. За допомогою цієї утиліти можна копіювати як з віддаленого сервера, так і на сам віддалений сервер.

Приклад: копіювання інформації з локальної машини на віддалений сервер

Для копіювання інформації з локального сервера на віддалений сервер використовуйте команду:

Синтаксис команди:
  1. scp /шлях/до/локального/файлу користувач@віддалений_сервер:/шлях/на/віддаленому/сервері/
Готовий приклад команди:
  1. scp /var/www/user_name/data user@s1.thehost.com.ua:/var/www/user_name/data/
  • /var/www/user_name/data: шлях до каталогу на локальному та віддаленому серверах
  • user: користувач, який повинен мати доступ до ssh
  • s1.thehost.com.ua: адреса/IP віддаленого сервера, в Вашому випадку, скоріш за все, адреса буде іншою.
Приклад: копіювання інформації з віддаленого сервера на локальний комп’ютер

Для копіювання інформації з віддаленого сервера на локальний комп’ютер використовуйте команду:

Синтаксис команди:
  1. scp користувач@віддалений_сервер:/шлях/на/віддаленому/сервері/локальний_файл /шлях/на/локальній/машині/
Готовий приклад команди:
  1. 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 є ефективним інструментом для керування файлами у текстовому режимі.

Утиліта може бути відсутня на Вашому сервері. Ви завжди можете виконати встановлення утиліти за допомогою команди:

Для Ubuntu/Debian
  1. apt-get install mc
Для Centos/AlmaLinux/RockyLinux:
  1. yum install mc
Приклад: використання Midnight Commander:

1. Відкрийте термінал.

2. Запустіть Midnight Commander, ввівши команду:

user@hosting.server:
  1. mc

3. У розділі Right виберіть Shell link. Інтерфейс МС

4. У вікні, введіть адресу віддаленого сервера, в наступному форматі:

  1. sh://користувач@віддалений_сервер/шлях/на/віддаленому/сервері/
  • користувач: користувач віддаленого сервера
  • віддалений_сервер: адреса/ip віддаленого сервера
  • /шлях/на/віддаленому/сервері/: шлях до потрібного каталогу

5. При першому підключенні потрібно підтвердити ключ безпеки, прописавши в консолі yes.

  1. 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 часто використовується для резервного копіювання, оновлення віддалених файлів та синхронізації даних між комп’ютерами через мережу. Утиліта надає гнучкі опції конфігурації та є потужним інструментом для ефективної роботи з даними.

Для роботи з утилітою Вона має бути встановлена на обох серверах. Для встановлення використовуйте команду:

Для Ubuntu/Debian
  1. apt-get install rsync
Для Centos/AlmaLinux/RockyLinux:
  1. yum install rsync
Приклад: копіювання з локального сервера на віддалений сервер
Синтаксис команди:
  1. rsync -avr -e ssh --progress /шлях/до/локального/каталогу/ користувач@віддалений_сервер:/шлях/на/віддаленому/сервері/
Приклад вже готової команди:
  1. 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 кілобайт на секунду. Може бути налаштований, якщо необхідно обмежити швидкість передачі.
Приклад: копіювання з віддаленого сервера на локальний комп’ютер
Синтаксис команди:
  1. rsync -avr -e ssh --progress користувач@віддалений_сервер:/шлях/на/віддаленому/сервері/ локальний_каталог/
Приклад вже готової команди:
  1. rsync -avr -e ssh --progress user@s1.thehost.com.ua:/var/www/user_name/data/ var/www/user_name/data/

Ці приклади допоможуть Вам освоїти використання команд копіювання файлів між серверами. Виберіть метод залежно від Ваших уподобань та вимог Вашого проекту.