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