- Копирование файлов по ssh. Команда scp
- Синтаксис команды scp
- Копирование локального файла
- Локальный→Удаленный
- Указываем порт
- Копирование файла с удаленного компьютера на локальный
- Удаленный→Локальный
- Копирование директории
- Копирование со сжатием данных (ускорение)
- Сохранение атрибутов файла
- Если в пути есть пробелы
- Как скопировать файл / папку из локальной системы в удаленную систему в Linux?
- Метод 1: Копировать файлы / папки из локальной системы в удаленную систему в Linux с помощью команды SCP
- Способ 2: Копирование файлов / папок из локальной системы на несколько удаленных систем в Linux с помощью Shell Script с командой scp?
- Метод 3: Копирование файлов / папок из локальной системы на несколько удаленных систем в Linux с помощью команды PSCP?
- Метод 4: Копирование файлов / папок из локальной системы на несколько удаленных систем в Linux с помощью команды rsync?
- Метод 5: Копирование файлов / папок из локальной системы на несколько удаленных систем в Linux с помощью Shell Script с командой rsync?
- Метод 6: Копирование файлов / папок с локальной системы на несколько удаленных систем в Linux с помощью Shell Script с командой scp?
- Метод 7: Копировать файлы / папки из локальной системы на несколько удаленных систем в Linux с нестандартным номером порта?
- Копирование файлов через SSH
- Копирование файлов по SSH на Linux
- Как скопировать файл по SSH с локальной машины на удалённый сервер
- Как скопировать файлы с удалённого сервера на локальный компьютер
- Как скачать папку со всеми файлами и подпапками
- Как подключиться к серверу по нестандартному порту
- Как передать и скачать файлы по SSH на Windows
- 11.4. Копирование файлов между Linux компьютерами
- 11.4.1. Копирование файлов с помощью SSH
- 11.4.2. Передача файлов с помощью rsync
- 11.4.2.1. Базовый режим rsync
- 11.4.2.2. rsync в режиме демона (службы)
- 11.4.3. Передача файлов с помощью Unison
- 11.4.3.1. Использование GUI
- 11.4.3.2. Использование командной строки
- 11.4.4. Копирование файлов с помощью FTP
Копирование файлов по ssh. Команда scp
Для копирования файлов по ssh между компьютерами под управлением Linux применяется команда scp . Рассмотрим, как можно копировать файлы с одного компьютера на другой по ssh, используя команду scp .
Синтаксис команды scp
Синтаксис команды scp следующий:
Команда scp принимает на вход различные опции (см. примеры ниже), а также файл или директорию, которую необходимо скопировать (аргумент что_копируем ). Последним аргументом указывается путь назначения, в который будет произведено копирование (аргумент куда_копируем ).
Аргументы что_копируем и куда_копируем могут быть, как локальными путями, так и удаленными. То есть можно копировать файлы с удаленного компьютера на локальный и наоборот. Можно копировать файлы с удаленного компьютера на другой удаленный компьютер.
что_копируем и куда_копируем имеют следующий синтаксис:
имя_пользователя — это имя пользователя для подключения по ssh.
IP_адрес — IP адрес компьютера (хоста) на который или с которого будет копирование.
Копирование локального файла
Локальный→Удаленный
Рассмотрим простой пример. Скопируем по ssh локальный файл myfile.dat на компьютер с IP адресом 192.168.1.74 в директорию /home/pingvin .
Указываем порт
Выполним тоже самое, но укажем еще и порт для подключения по ssh (используем опцию -P ). Обратите внимание, что опция для указания порта это прописная буква P !
Копирование файла с удаленного компьютера на локальный
Удаленный→Локальный
Теперь наоборот. Скопируем файл с удаленного компьютера в нашу текущую директорию.
Копирование директории
Скопируем с нашего локального компьютера директорию
/mydir на удаленный компьютер в директорию /home/pingvin . Используется опция -r .
Копирование со сжатием данных (ускорение)
Скорость копирования файлов можно увеличить. Для этого используется опция -C . Данная опция выполняет сжатие файлов при копировании, таким образом по сети передается меньшее количество данных. Сжатие выполняется только при передаче данных, то есть результирующий файл будет в первоначальном виде.
Пример копирования файла myfile.dat с включенным сжатием.
Сохранение атрибутов файла
Чтобы результирующий файл получил те же атрибуты что и исходный файл, используется опция -p (не путать с опцией -P для указания порта). При использовании опции -p сохраняются права доступа к файлу, владелец файла, временные метки и так далее.
Если в пути есть пробелы
Если путь до удаленного файла/директории содержит пробелы, то при использовании команды scp необходимо этот путь заключить и в одинарные и двойные кавычки:
Это связано с тем, что одни кавычки используются при разборе пути на локальной стороне, а вторые на удаленной.
Для получения полной справки по команде scp выполните в терминале:
Источник
Как скопировать файл / папку из локальной системы в удаленную систему в Linux?
Как скопировать файл / папку из локальной системы в удаленную систему в Linux? Перенос файла с одного сервера на другой или с локального на удаленный является одной из рутинных задач администратора Linux. Если кто-то скажет «нет», я не приму это в серьез, потому что это одно из регулярных занятий, которым приходится заниматься. Это можно сделать разными способами, и мы стараемся охватить все возможные варианты. Вы можете выбрать тот метод, который вы предпочитаете. Также проверьте другие команды, которые могут помочь вам в каких-то других целях. Я протестировал все эти команды и скрипты в своей тестовой среде, поэтому вы можете использовать их для своей обычной работы. По умолчанию каждый работает с SCP, потому что это одна из встроенных команд, которую все используют для копирования файлов. Но команды, которые перечислены в этой статье, умны, поэтому попробуйте их использовать, если вы хотите попробовать что-то новое. Это можно легко сделать четырьмя способами, описанными ниже.
SCP: scp копирует файлы между хостами в сети. Он использует ssh для передачи данных, использует ту же аутентификацию и обеспечивает ту же безопасность, что и ssh.
RSYNC: rsync – это быстрый и необычайно универсальный инструмент для копирования файлов. Он может копировать локально, на / с другого хоста через любую удаленную оболочку или на / с удаленного демона rsync.
PSCP: pscp – это программа для параллельного копирования файлов на несколько хостов. Он предоставляет такие функции, как передача пароля в scp, сохранение вывода в файлы и тайм-аут.
PRSYNC: prsync – это программа для копирования файлов параллельно с несколькими хостами. Он предоставляет такие функции, как передача пароля в ssh, сохранение вывода в файлы и тайм-аут.
Метод 1: Копировать файлы / папки из локальной системы в удаленную систему в Linux с помощью команды SCP
Команда scp позволяет нам копировать файлы / папки из локальной системы в удаленную систему.
Мы собираемся скопировать файл output.txt из моей локальной системы в удаленную систему 2g.CentOS.com в каталоге /opt/backup.
Мы собираемся скопировать два файла output.txt и passwd-up.sh из моей локальной системы в удаленную систему 2g.CentOS.com в каталоге /opt/backup.
Мы собираемся скопировать каталог shell-script из моей локальной системы в удаленную систему 2g.CentOS.com в каталоге /opt/backup.
Это скопирует каталог shell-script и связанные файлы в каталог /opt/backup.
Способ 2: Копирование файлов / папок из локальной системы на несколько удаленных систем в Linux с помощью Shell Script с командой scp?
Если вы хотите скопировать один и тот же файл на несколько удаленных серверов, создайте следующий небольшой сценарий оболочки для достижения этой цели.
Для этого получите список серверов и добавьте их в файл server-list.txt.
Убедитесь, что вы обновили список серверов в файле server-list.txt.
Каждый сервер должен быть в отдельной строке.
Наконец, укажите местоположение файла, который вы хотите скопировать, как показано ниже.
Как только вы закончите, установите исполняемое на выполнение для файла password-update.sh.
Наконец, запустите скрипт, чтобы добиться желаемого результата.
Используйте следующий скрипт, чтобы скопировать несколько файлов на несколько удаленных серверов.
Вывод ниже показывает все файлы дважды, так как все скопировано на два сервера.
Используйте следующий скрипт для рекурсивного копирования каталога на несколько удаленных серверов.
Выход для вышеуказанного скрипта.
Метод 3: Копирование файлов / папок из локальной системы на несколько удаленных систем в Linux с помощью команды PSCP?
Команда pscp напрямую позволяет нам выполнять копирование на несколько удаленных серверов.
Используйте следующую команду pscp, чтобы скопировать один файл на удаленный сервер.
Используйте следующую команду pscp, чтобы скопировать несколько файлов на удаленный сервер.
Используйте следующую команду pscp, чтобы рекурсивно скопировать каталог на удаленный сервер.
Используйте следующую команду pscp, чтобы скопировать один файл на несколько удаленных серверов.
Используйте следующую команду pscp, чтобы скопировать несколько файлов на несколько удаленных серверов.
Используйте следующую команду pscp для рекурсивного копирования каталога на несколько удаленных серверов.
Метод 4: Копирование файлов / папок из локальной системы на несколько удаленных систем в Linux с помощью команды rsync?
Rsync – это быстрый и необычайно универсальный инструмент для копирования файлов.
Он может копировать локально, на / с другого хоста через любую удаленную оболочку или на / с удаленного демона rsync.
Используйте следующую команду rsync, чтобы скопировать один файл на удаленный сервер.
Используйте следующую команду pscp, чтобы скопировать несколько файлов на удаленный сервер.
Используйте следующую команду rsync, чтобы скопировать один файл на удаленный сервер через ssh.
Используйте следующую команду pscp, чтобы рекурсивно скопировать каталог на удаленный сервер через ssh.
Это действие скопирует только файлы, а не базовый каталог.
Метод 5: Копирование файлов / папок из локальной системы на несколько удаленных систем в Linux с помощью Shell Script с командой rsync?
Если вы хотите скопировать один и тот же файл на несколько удаленных серверов, создайте следующий небольшой скрипт оболочки для достижения этой цели.
Вывод для вышеуказанного скрипта оболочки.
Метод 6: Копирование файлов / папок с локальной системы на несколько удаленных систем в Linux с помощью Shell Script с командой scp?
В приведенных выше двух скриптах оболочки мы должны упомянуть расположение файла и папки в качестве предварительных требований, но здесь я сделал небольшую модификацию, позволяющую скрипту получить файл или папку в качестве входных данных.
Это может быть очень полезно, если вы хотите выполнить копирование несколько раз в день.
Запустите скрипта и укажите имя файла в качестве входных данных.
Метод 7: Копировать файлы / папки из локальной системы на несколько удаленных систем в Linux с нестандартным номером порта?
Используйте скрипт оболочки, расположенный ниже, чтобы скопировать файл или папку, если вы используете нестандартный порт.
Если вы используете нестандартный порт, обязательно укажите номер порта, как указано ниже для команды SCP.
Запустите скрипт оболочки и укажите имя файла в качестве входных данных.
Если вы используете нестандартный порт, убедитесь, что вы упомянули номер порта, как указано ниже для команды rsync.
Запустите сценарий оболочки и укажите имя файла в качестве входных данных.
Источник
Копирование файлов через SSH
В статье мы расскажем, как копировать файлы в Windows и Linux-системах, и покажем основные команды, с помощью которых происходит передача файлов по SSH.
Для копирования файлов по SSH в Linux-системах и Windows используют разные инструменты:
- scp (Secure CoPy) — утилита для безопасного копирования данных между Linux-системами по протоколу SSH. Она входит в состав OpenSSH, поэтому для работы с утилитой не нужно устанавливать дополнительное ПО;
- pscp.exe — утилита для загрузки файлов по SSH в ОС Windows. Она обладает теми же возможностями, что и scp. Утилита входит в состав программы Putty — SSH-клиента для Windows. Скачать программу можно по ссылке.
Копирование файлов по SSH на Linux
Для Linux копирование файлов по SSH происходит с использованием команды scp. С её помощью можно копировать файлы:
- с локального компьютера на удалённый сервер,
- с удалённого сервера на локальный компьютер.
Общий вид команды:
scp [опция] [источник] [получатель]
Как скопировать файл по SSH с локальной машины на удалённый сервер
Как загрузить файл на сервер по SSH? Для этого используйте команду вида:
scp [путь к файлу] [имя пользователя]@[имя сервера/ip-адрес]:[путь к файлу]
scp /home/test.txt root@123.123.123.123:/directory
Файл test.txt будет скопирован на хост 123.123.123.123 в директорию «/directory».
Как скопировать файлы с удалённого сервера на локальный компьютер
При подключённом SSH скачать файл на локальный компьютер с удалённого сервера можно с помощью команды:
scp [имя пользователя]@[имя сервера/ip-адрес]:[путь к файлу] [путь к файлу]
scp root@123.123.123.123:/home/test.txt /directory
Файл test.txt будет загружен с сервера 123.123.123.123 на локальный компьютер в папку «/directory».
Как скачать папку со всеми файлами и подпапками
Если вы хотите скачать папку со всеми файлами и подпапками, используйте ключ -r:
scp -r [источник] [получатель]
Как подключиться к серверу по нестандартному порту
Бывает, что для подключения по SSH нужно указать нестандартный порт. Без указания порта команда подключается к серверу по стандартному 22 порту. Чтобы указать нестандартный порт, введите команду с ключём -P:
scp -P [источник] [получатель]
scp -P 12345 /home/test.txt root@123.123.123.123:/directory
Эта команда подключается по порту 12345 к серверу 123.123.123.123 и копирует на него файл «test.txt» с локального компьютера в директорию «/directory».
Как передать и скачать файлы по SSH на Windows
Скопировать файл по SSH на сервер можно командой:
pscp [путь к файлу] [имя пользователя]@[имя сервера/ip-адрес]:[путь к файлу]
Скачать файл по SSH с сервера командой:
pscp [имя пользователя]@[имя сервера/ip-адрес]:[путь к файлу] [путь к файлу]
Увидеть список папок и файлов на сервере можно через pscp.exe. Для этого введите:
pscp -ls [имя пользователя]@[имя сервера/ip-адрес]:[путь]
Если в пути или в названии файла есть пробелы, используйте кавычки:
pscp “C:\files or docs\file name” root@123.123.123.123:/home
Источник
11.4. Копирование файлов между Linux компьютерами
Linux предлагает богатый выбор протоколов, которые вы можете использовать чтобы копировать файлы между компьютерами. Выбор протокола зависит от того, насколько много усилий вы хотите вложить и нуждаетесь ли вы в совместимости с будущими установками Windows. Следующие секции представляют различные методы передачи файлы из и в Linux компьютеры. Убедитесь, что вы имеете работоспособное сетевое соединение, иначе они не будут работать. Все сценарии предполагают работу службы разрешения имен в сети. Если ваша сеть не включает службу имен, используйте непосредственно IP адрес или добавьте IP адреса в соответствии с именами хостов (компьютеров) в /etc/hosts на всех компьютерах.
Следующий пример IP адресов и имен хостов используется на протяжении всего этого раздела:
Имя хоста назначения
IP адрес назначения
Имя хоста источника
IP адрес источника
11.4.1. Копирование файлов с помощью SSH
Следующие требования должны быть удовлетворены и на сервере, и со стороны клиента:
Если вы используете имена хостов, то убедитесь, что каждое имя фигурирует в /etc/hosts на сервере и на клиенте . Если вы используете IP адреса, вам не нужно ничего менять.
Если вы используете брандмауэр, откройте порт SSH. Запустите YaST и выберите Пользователи и безопасность + Брандмауэр . Далее Разрешенные службы и проверьте, отображается ли SSH в списке разрешенных служб. Если нет то, выберите SSH из выпадающего меню Разрешить службу и щелкните Добавить . Примените ваши изменения и покиньте YaST нажав Далее и затем Применить .
Чтобы копировать файлы с сервера клиенту, вы должны знать, где файлы размещаются на сервере. Например, чтобы копировать единственный файл /srv/foo_file с сервера jupiter.example.com в текущий каталог, используйте команду scp (точка указывает на текущий каталог):
Чтобы копировать целый каталог, используйте рекурсивный режим scp :
Если ваша сеть не имеет службы разрешения имен, используйте непосредственно IP адрес сервера:
Если вы не знаете точно где находится ваш файл, используйте команду sftp . Копирование файлов в KDE или GNOME с помощью SFTP очень просто. Поступите следующим образом:
Нажмите Alt + F2 .
Введите следующее в адресной строке:
Введите ваш пароль tux на jupiter.example.com .
Перетащите ваши файлы или каталоги с сервера на ваш рабочий стол или локальный каталог.
KDE предоставляет другой протокол, называемый fish , который может быть использован если sftp недоступен. Использование этого протокола подобно sftp . Замените префикс протокола sftp в URL на fish :
11.4.2. Передача файлов с помощью rsync
Перед использованием rsync для синхронизации файлов и каталогов между различными компьютерами, убедитесь, что следующие требования удовлетворяются:
Пакет rsync установлен.
Идентичные пользователи присутствуют на обоих системах.
Доступно достаточное дисковое пространство на сервере.
Если вы хотите извлечь пользу из rsync в полной мере, убедитесь, что демон rsyncd установлен на одной из систем.
rsync полезен для архивирования или копирования данных и так же может быть использован как демон, чтобы предоставить каталоги в сеть (смотрите Расширенная настройка синхронизации с помощью rsync).
11.4.2.1. Базовый режим rsync
Базовый режим работы rsync не требует ни каких специальных конфигураций. rsync позволяет идеально отображать целые каталоги с одной системы на другую. Его использование не сильно отличается от инструмента для регулярного копирования, такого как scp. Следующая команда создает резервную копию домашнего каталога tux на сервере резервного копирования называемом jupiter :
Используйте следующую команду, чтобы восстановить данные из вашей резервной копии:
11.4.2.2. rsync в режиме демона (службы)
Запустите демон rsyncd на одной из ваших систем, чтобы использовать rsync полнофункционально. В этом режиме возможно создание точек синхронизации (модулей), которые могут быть доступны без учетных записей. Чтобы использовать демон rsyncd, проделайте следующее:
Процедура 11.1. Расширенная настройка синхронизации с помощью rsync
Войдите как root и установите пакет rsync .
Настройте ваши точки синхронизации в /etc/rsyncd.conf . Добавьте имя точки в квадратных скобках и path ключевое слово, как показано в примере:
Запустите демон rsyncd от имени root rcrsyncd start . Чтобы автоматически запускать демон rsync во время загрузки системы, вызовите insserv rsyncd .
Чтобы получить список всех файлов размещенных в каталоге /srv/ftp введите (заметьте: двойное двоеточие):
Инициируйте передачу указав целевой каталог (в этом примере текущий каталог представлен точкой):
По умолчанию, файлы не удаляются в процессе синхронизации. Чтобы форсировать удаление файлов, добавьте опцию —delete . Чтобы гарантировать, что опция —delete случайно не удаляет новые файлы, используйте вместо нее опцию —update . Любые возникающие конфликты должны быть разрешены в ручную.
11.4.3. Передача файлов с помощью Unison
До использования Unison для синхронизации файлов и папок между разными компьютерами, убедитесь, что выполняются следующие требования:
Установлен пакет unison .
Есть достаточно свободного места у вас на локальном и удаленном компьютерах.
Если вы хотите воспользоваться Unison в полный потенциал, убедитесь, что Unison установлен и запущен на удаленном компьютере.
В случае необходимости, запустите Unison с опцией -doc topics для получения полного списка доступных разделов.
Для постоянных настроек, Unison позволяет создать profiles (профили) , которые определяют параметры Unison, такие, как директории (корни) для синхронизации, игнорируемые типы файлов и другие настройки. Профили хранятся в виде текстовых файлов в
/.unison с расширением *.prf .
11.4.3.1. Использование GUI
Для синхронизации различных каталогов с помощью Unison’s GUI, проделайте следующее:
Запустите Unison нажатием Alt + F2 и введите unison .
Если вы запустили Unison в первый раз и без каких-либо опций, у вас запросят каталог-источник. Введите каталог-источник который вы хотите синхронизировать и нажмите OK .
Введите каталог назначения. Он может быть локальным или удаленным. Если вы хотите синхронизироваться с удаленным каталогом, выберите метод (SSH, RSH или Socket) и введите и имя хоста и дополнительного пользователя.
Если вы не синхронизировали эти два каталога раньше, появится диалоговое окно с предупреждением, информирующее вас о том, что Unison сравнит содержимое этих каталогов. Закройте предупреждение, нажатием OK и ждите пока Unison соберет информацию о каталогах и выведет информацию о различиях в главном окне.
В левой колонке показан выбранный каталог источник, в третьей колонке показан каталог назначения. Если существуют различия между каталогами, в колонке Действия указано условное обозначение, предлагаемых действий. Зеленый стрелка указывает, что файл был изменен, добавлен или удален в папке источнике или папке назначения. Направление стрелки указывает направление изменений которые произойдут, если произвести синхронизацию. Вопросительный знак указывает на конфликт (то есть файлы были изменены и Unison не будет автоматически перезаписывать их).
Рисунок 11.1. Варианты синхронизации файлов
Чтобы изменить показанные Unison предложения для каждого файла (например, если вы захотите изменить каталог), выберите файл и нажмите справа налево или слева направо . Пропустить , исключает файлы из синхронизации. Символ в колонке Действия изменится соответствующим образом.
Для запуска синхронизации, нажмите Начать .
При следующем запуске Unison, будет показано диалоговое окно выбора профилей, с указанием пары каталогов для синхронизации. Выберите профиль или создайте новый (еще пару каталогов) и выполните синхронизацию, как описано выше.
11.4.3.2. Использование командной строки
Unison может быть также задействован через командную строку. Для синхронизации локального каталога с удаленным компьютером, проделайте следующее:
Откройте консоль и введите следующую команду:
Замените метки с соответствующих значений.
Unison спросит, что делать с вашими файлами и каталогами,
например:
Нажмите F если вы хотите следовать рекомендациям Unison. Чтобы увидеть другие команды нажмите ? .
Нажмите y , если вы хотите обновить.
11.4.4. Копирование файлов с помощью FTP
Перед настройкой вашего FTP сервера, убедитесь, что выполняются следующие требования:
Установлен пакет vsftp .
У вас есть доступ root к FTP сервера.
Есть достаточно дискового пространства на вашем компьютере.
Только для домашних сетей | |
---|---|