Як безпечно перенести файли з віддаленого сервера на локальний комп'ютер за допомогою команди SCP у Linux?
07:52, 10.10.2023
Під час керування сервером з персонального комп'ютера часто виникає необхідність перенесення файлів між обома машинами. З одного боку, це може становити певну складність для користувачів-початківців, оскільки не можна просто перетягнути файли з сервера на ПК. З іншого боку, для цього існують різні способи, і освоєння одного з них у більшості випадків вирішить ваші проблеми.
Сьогодні ми розглянемо один із них, а саме команду SCP у Linux.
Декодування команд SCP: Повний довідник
SCP розшифровується як Secure Copy Protocol (протокол безпечного копіювання). Це команда, що забезпечує безпечний спосіб копіювання файлів між віддаленим сервером і локальною машиною за протоколом SSH (Secure Shell), на відміну від простішої команди cp (copy). Це дає змогу не тільки безпечно передавати інформацію, а й бути впевненим у тому, що ніхто не зможе перехопити конфіденційні дані.
Демістифікація синтаксису SCP
Як і багато інших команд, SCP - це не одна команда для виконання однієї дії. Замість цього в синтаксис SCP входить цілий набір команд, що дозволяють виконувати різні операції, пов'язані з передачею файлів.
Основна структура синтаксису SCP має такий вигляд:
scp [OPTIONS] [[user@]src_host:]file1 [[user@]dest_host:]file2
"src_host" - це файл або каталог, який ви хочете передати, "dest_host" позначає місце, куди ви хочете передати вміст. Обидва елементи можуть бути як локальними, так і віддаленими, тобто SCP підтримує двонаправлену передачу.
"Options" позначає різні дозволи, які ви можете надати своїй команді. Серед них:
- P (головна) - вибрати порт для підключення віддаленого сервера.
- p (незначна) - додати інформацію про момент часу для полегшення пошуку операції надалі.
- r - передати всю зазначену директорію.
- q - додайте, якщо не хочете отримувати жодних повідомлень про завершення процедури перенесення.
- C - стискати інформацію під час копіювання.
Насправді, команда SCP досить універсальна. Крім пересилання файлів з віддаленого вузла на локальний, вона може використовуватися і в зворотному напрямку, а також для обміну файлами між двома віддаленими вузлами.
Перш ніж заглиблюватися в конкретні випадки використання команди SCP, необхідно перевірити дві умови:
- На кожному пристрої має бути присутній SSH.
- Також необхідно мати root-доступ до кожного пристрою.
Огляд основних команд SCP
Переміщення файлів із локального хоста на віддалений сервер
Спочатку розглянемо, як переслати файл або каталог із локального хоста на віддалений сервер.
Застосуйте: scp /path/to/local/file username@remote_ip:/path/to/destination.
"/path/to/local/file" означає шлях до переданих файлів, "username" - ім'я користувача віддаленого сервера, "remote_ip" має містити адресу віддаленого сервера. "path/to/destination" - бажане місце розташування на віддаленому сервері.
Порада: Замість того щоб щоразу набирати весь домашній каталог, можна просто ввести знак ~ (tilda) як адресата.
Крім того, цю саму команду можна використовувати для копіювання кількох файлів. Наприклад, можна скопіювати всі файли з одного каталогу, що мають спільне розширення. Для цього замість файлу вкажіть *.[розширення файлу]. Наприклад, щоб скопіювати всі файли .txt, введіть *.txt.
scp /path/to/local/.txt username@remote_ip:/path/to/destination*
Можна також зберегти файл під іншим ім'ям, додавши потрібне ім'я після пункту призначення.
scp /path/to/local/painauchocolat.txt username@remote_ip:/path/to/destination/croissant.txt
У наведеному прикладі файл "painauchocolat.txt" буде збережено як "croissant.txt".
Передання файлів з віддаленого сервера на локальний
Аналогічно будується відповідна команда для передавання файлів з віддаленого сервера на локальну машину:
scp username@remote_ip:/path/to/remote/file /path/to/local/destination
Замініть ім'я користувача, "remote_ip", "/path/to/remote/file" і "/path/to/local/destination", як це було в попередніх випадках.
Порада: Якщо файли знаходяться в домашньому каталозі, то вказувати шлях не потрібно. Просто введіть ім'я файлу, і його місце розташування, а також місце призначення будуть встановлені як домашній каталог.
scp username@192.168.137.59:painauchocolat.txt
За допомогою цієї команди ви можете переслати файл painauchocolat.txt з домашнього каталогу віддаленого сервера в домашній каталог вашого локального комп'ютера.
Копіювання файлів між віддаленими хостами
Протокол SCP хороший тим, що він дає змогу не тільки копіювати файли між локальним і віддаленим хостом, а й здійснювати обмін файлами між двома віддаленими серверами. Для цього використовуйте такий синтаксис:
scp username@remote_ip1:/path/to/source/file username@remote_ip2:/path/to/destination
Замініть імена користувачів, remote_ip1, remote_ip2, /path/to/source/file і /path/to/destination відповідно.
Слід пам'ятати, що це не обов'язково має бути ідентичний користувач. Ви можете передавати файли від одного облікового запису користувача до іншого, вказавши відповідні імена користувачів.
Керування передаванням кількох файлів
За допомогою SCP можна також передавати групи файлів і цілі каталоги. Для передачі каталогів до команди SCP необхідно додати прапорець -r:
scp -r /path/to/local/directory username@remote_ip:/path/to/destination
Якщо необхідно скопіювати окремі файли з каталогу, достатньо вказати кілька імен файлів за шляхом до джерела. Наприклад:
scp /path/to/local/file1 file2 file3 file_andsoon username@remote_ip:/path/to/destination
Важливі висновки
Дозволи: Переконайтеся, що у вас є необхідні дозволи для передачі файлів. Це має бути дозвіл на читання для вихідних файлів і дозвіл на запис для кінцевого каталогу.
SSH: Оскільки в SCP задіяний SSH, вам знадобиться відповідний пароль.
Файли з однаковими іменами: Переконайтеся, що в цільовому каталозі немає файлів, імена яких збігаються з іменами файлів, що копіюються, якщо ви не хочете, щоб SCP замінив їх, не питаючи вас.
Двокрапка: Не забувайте ставити знак двокрапки (:) між вихідною і цільовою адресами.
Домашній напрямок: Якщо ви передаєте файли в або з домашнього напряму, то його можна не зазначати й одразу набирати імена файлів.
Підсумок
Передання файлів - це звичайна процедура, яку вам, найімовірніше, доведеться виконувати в той чи інший момент часу під час роботи з віддаленими серверами. SCP - це один із найпоширеніших способів передавання, досить зручний і водночас безпечний. Ми сподіваємося, що наведена вище стаття роз'яснила синтаксис цих функцій, і у вас не виникне жодних проблем під час передачі файлів.