Як скопіювати файли з віддаленого пк, якщо є тільки ssh # записки про unix
або прочитавши на сайті російську версію мана.
Стало бути якщо вже SSH встановлений, а якщо немає, дивимося статтю SSH - настройки. то і команда scp в наявності.
Найпростіший приклад використання SCP виглядає так:
scp file user_name @ remote_server:
При цьому локальний файл file буде скопійований на віддалений сервер і поміщений в домашній каталог користувача user_name. замість
/ Можна використовувати будь-який інший шлях або будь-яку іншу папку, в якій користувач user_name має права на запис.
Щоб скопіювати файл з віддаленого сервера на локальний комп'ютер, використовується інший синтаксис SCP:
При цьому файл file. розташований в домашньому каталозі користувача user_name в віддаленій системі, буде скопійований в локальну папку (в якій ми зараз знаходимося).
Утиліта scp має одну особливість синтаксису. Припустимо, в домашньому каталозі є підкаталог з ім'ям video і потрібно скопіювати його на віддалену систему. Необхідно, щоб вміст
/ Video замінило вміст каталогу video на віддаленому комп'ютері, якщо імена файлів або каталогів при копіюванні будуть збігатися.
. В описі шляху до каталогу на віддаленому комп'ютері не вистачає закриває слеша "/". З точки зору SCP команда Новомосковскется як "копіювати вміст каталогу
/ Video в каталог / dir / video на віддаленому комп'ютері ".
Як і в разі використання команди cp. файли і каталоги, чиї імена збігаються з іменами файлів і каталогів на сервері - перезаписувати, файли з відмінними іменами на віддаленій системі залишаються недоторканими.
Додамо в кінець команди закриває слеш:
/ Videoв каталог / dir / video. "Замість перезапису вмісту віддаленого каталогу, каталог video на вихідному комп'ютері буде просто скопійований в віддалений каталог.
Слід враховувати дану особливість при роботі і застосовувати закриває Слеш там, де цього вимагає ситуація. Такий стан справ, має бути знайома тим, кому доводилося працювати з утилітою rsync, але це вже тема окремої статті. Дуже корисна утиліта, буде час, збираючись з думками напишу.
Г рафіческіе інтерфейси для SCP:
Якщо вам не подобається працювати з консоллю, то ви можете використовувати графічний (або псевдографічний) клієнт SCP.
Midnight Commander - одна з програм, що володіє функціями SCP-клієнтів (Меню> Права панель / Ліва панель> Shell-з'єднання).
/. При цьому файли можуть копіюватися, як якщо б вони були розташовані локально.
У середовищі MS Windows є відмінний додаток WinSCP. Його інтерфейс дуже схожий на Total Commander. Існує плагін для Total Commander. дозволяє виконувати SCP-підключення.
*****************************
У наступній статті про можливості SSH будуть порушені питання X forwarding (а). (Перенаправлення Х-сов).
-p (зберігає час модифікації і, по можливості, права доступу)
-r (рекурсивно копіювати всю директорію, файл призначення д.б.н. Директорією)
Дозволяє входити в віддалену систему з віртуального терміналу.
- -8 - 8-бітний введення (чи любите ви українську мову;)
- -E - не обробляти escape-символи
- -e escape-символ - задає escape-символ замість стандартного символу '
escape-послідовності (розпізнаються тільки на початку рядка, escape-символ можна задавати ключем -e):
Дозволяє виконувати команду на віддалений хост (514 / TCP). Стандартний введення rsh передається на стандартне введення віддаленої команди. Стандартний висновок віддаленої команди передається на стандартний висновок rsh. stderr віддаленої команди передається на stderr rsh по додатковому каналу. Сигнали INT, HANG, TERM передаються віддаленій команді.
- -n - замість стандартного вводу використовувати / dev / null
- -l ім'я-користувача - задає ім'я користувача на віддалений хост (за замовчуванням збігається з ім'ям користувача на локальному хості)
- команда - команда для виконання на віддалений хост; якщо не вказана, то проводиться rlogin (513 / TCP)
На клієнтській машині необхідно відкрити порти 1023 / TCP і тисячі двадцять дві / TCP (тисячі двадцять дві для stderr; це в надії, що одночасно не може виконуватися більше одного rsh;). Файл / usr / bin / rsh має права rws і власника root, щоб мати можливість відкрити вихідний порт нижче 1023.
Дозволяє здійснити масову автоматичну розсилку файлів з локального хоста на кілька сотень хостів з перевіркою наявності місця, розсилкою повідомлень про проблеми, виконанням завершальних процедур і т.п. Зберігає ім'я власника, ім'я групи, права доступу та час модифікації файлу. Самий відповідний інструмент, якщо необхідно автоматизувати оновлення пакетів на кількох сотнях комп'ютерів. В якості транспорту дозволяє використовувати rcmd (3) за допомогою демона rdistd (не розглядаю через проблеми з безпекою), rsh (не розглядаю з тих же причин) і ssh (не забудьте зняти setuid). Канал передачі використовується неефективно на відміну від rsync
Формат конфігураційного файлу.
RSYNC Синхронізація файлів на віддалених хостах.
Аналогічно rcp дозволяє копіювати файли між хостами, але прискорює процес тому передає тільки змінені частини (хитрий алгоритм на основі порівняння контрольних сум). Дозволяє копіювати посилання (links), спеціальні пристрої (device), власника і групу файлу, права доступу. Дозволяє використовувати в якості транспорту як rsh. так і ssh. Включає сервер rsyncd (доступ анонімний або з аутентифікацією), порт 873 / TCP. Я сервер не використовую (не люблю, коли паролі лежать у відкритому вигляді) і тому не описую. Файл записується у вигляді: [[user @] host:] file. Якщо файл призначення є ім'ям директорії, то вихідні файли копіюються в неї. Якщо ім'я вихідної директорії завершується звичайною косою рисою, то копіюється вміст директорії, а не сама директорія (відчуйте різницю;). Відносні імена відраховуються щодо домашньої директорії відповідного користувача на відповідному хості. Якщо в якості параметрів вказано тільки ім'я віддаленого файлу / директорії, то видається лістинг. Не можна копіювати з одного віддаленого хоста на інший. rsync повинен бути встановлений на обох кінцях. Опції:
* .bak, * .o, core і т.д. включаючи вміст файлів .cvsignore)- -I (пересилати файл навіть якщо довжина і час модифікації збігається на обох кінцях)
- --size-only (визначати необхідність пересилання тільки за збігом розмірів файлу)
- --modify-window = секунд (якщо різниця часу модифікації менше зазначеного числа, то файли вважаються однаковими; за замовчуванням - 0)
- -c (на вихідному кінці вважається контрольна сума (MD4) файлу, на приймальному кінці вона порівнюються з контрольною сумою локальної копії; якщо суми збігаються, то пересилання не відбувається)
- -u (не зраджувати, якщо приймальний файл новіше вихідного)
- --existing (змінювати тільки існуючі файли)
- -W (копіювати файли цілими, не задіюючи алгоритм порівняння)
- -b (робити backup, суфікс за замовчуванням - '
Синтаксис шаблону (і не ліниво людям придумувати свої правила опису шаблонів?):
- якщо шаблон починається зі звичайною косою риси, то він зіставляється з початком імені файлу, інакше з кінцем імені файлу
- якщо шаблон завершується косою рисою, то він зіставляється тільки з директорій
- метасимволу *. і [діють як в шаблонах shell
- якщо в шаблоні є дві ** поспіль, то все метасимволу можуть зіставлятися з косою рисою, інакше їх дія зупиняється косими рисами
- якщо шаблон содершіт нефінальную косу риску, то він зіставляється повного імені файлу, інакше останньому компоненту; тільки врахуйте, що алгоритм працює рекурсивно
Типовий приклад використання:
- rsync -e ssh -vacu user @ host: dir /.
- rsync -e ssh -vacu --exclude '. *. swp'. user @ host: dir /