Linux копирование файлов по сети

Linux копирование файлов по сети

Если у вас есть домашний сервер или сервер в интернете, то вам понадобится способ для безопасного перемещения файлов между машинами. Между локальными машинами мы могли бы просто переносить данные с помощью флешки, но на удаленный сервер нужно передавать данные только через сеть. Есть много способов реализации этой задачи.

В этой статье мы рассмотрим как выполняется копирование файлов с помощью утилиты scp (Secure Copy Command), а также что из себя представляет команда Linux scp. При передаче файлы шифруются, так что больше никто не сможет получить к ним доступ и самое интересное, что вам не нужно настраивать FTP или другое дополнительное программное обеспечение. Будет достаточно сервера SSH.

Что такое SCP?

Команда scp — это утилита, которая работает по протоколу SSH, а значит, все что вам нужно для передачи файла на компьютер, это чтобы на нем был запущен SSH сервер, а также вы должны знать логин и пароль для подключения к нему. С помощью команды scp вы можете не только перемещать файлы между локальной и удаленной системой, но и между двумя удаленными системами. Для этого тоже будет достаточно знать пароли от них. И в отличие от Rsync вам не нужно авторизоваться на одном из серверов.

Копирование файлов scp

Эта статья рассчитана в первую очередь на начинающих, поэтому я попытаюсь объяснять все как можно подробнее. Перед тем, как мы перейдем к практике, нужно рассмотреть общий синтаксис команды:

$ scp опции пользователь1@хост1 : файл пользователь2@хост2: файл

Опции утилиты больше касаются протокола SSH и настраивают общее ее поведение. Дальше следует адрес первого и второго файла. Каждый из них может быть расположен как на локальной, так и на удаленной машине. А теперь рассмотрим основные опции, которые могут нам понадобиться:

  • -1 — использовать протокол SSH1;
  • -2 — использовать протокол SSH2;
  • -B — пакетный режим для передачи нескольких файлов;
  • -C — включить сжатие;
  • — l — установить ограничение скорости в кбит/сек;
  • -o — задать нужную опцию SSH;
  • -p — сохранять время модификации;
  • -r — рекурсивное копирование директорий;
  • -v — более подробный режим.
  • -1 — использовать протокол SSH1;
  • -2 — использовать протокол SSH2;
  • -B — пакетный режим для передачи нескольких файлов;
  • -C — включить сжатие;
  • — l — установить ограничение скорости в кбит/сек;
  • -o — задать нужную опцию SSH;
  • -p — сохранять время модификации;
  • -r — рекурсивное копирование директорий;
  • -v — более подробный режим.

scp /home/sergiy/file root@losst.ru:/root/

В качестве пользователя нужно использовать любого пользователя, который есть на сервере. Вместо IP вы можете также домен сервера. Только необходимо, чтобы у выбранного пользователя были права записи в указанную папку.

С помощью опции -r вы можете скопировать на удаленную машину целый каталог. Команда будет выглядеть вот так:

scp -r /home/sergiy/photos root@losst.ru:/root/

Убедитесь, что у исходного каталога нет косой черты, а у каталога назначения она должна обязательно быть. Немного изменив синтаксис с косой чертой можно передать все файлы из каталога на удаленный сервер:

Читайте также:  Bitrix main type datetime object

scp -r /home/sergiy/photos/* root@losst.ru:/root/

Если поменять местами локальный путь и сервер, то вы сможете копировать файлы scp c удаленного сервера на локальный компьютер:

scp root@losst.ru:/root/file /home/sergiy/

Таким же самым образом вы можете копирование файлов scp или папок с сервера:

scp -r root@losst.ru:/root/photos /home/sergiy/

Обратите внимание, что папка, в которую вы собираетесь копировать должна завершаться косой чертой, иначе папка, которую вы копируете запишется вместо той, в которую нужно скопировать.

Чтобы скачать файл scp из одного сервера на другой, просто необходимо указать данные аутентификации на каждом из них. Например, скопируем один файл:

scp root@losst.ru:/home/root/index.html root@losst.ru:/home/root/www/

Скопируем папку с того же удаленного сервера:

scp root@losst.ru:/root/photos root@losst.ru:/home/root/www/

Выводы

В этой статье мы рассмотрели как выполняется передача файлов scp, как это работает и что вы можете сделать с помощью этой утилиты. Как вы видите, перемещать файлы с одного сервера на другой очень просто. В Linux достаточно понять основы чтобы начать работать эффективнее! А команда scp один из таких инструментов.

Следующие требования должны быть удовлетворены и на сервере, и со стороны клиента:

Если вы используете имена хостов, то убедитесь, что каждое имя фигурирует в /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).

Читайте также:  Canon powershot sx410 is драйвер

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 соберет информацию о каталогах и выведет информацию о различиях в главном окне.

Читайте также:  Helly von valentine слитые фото

В левой колонке показан выбранный каталог источник, в третьей колонке показан каталог назначения. Если существуют различия между каталогами, в колонке Действия указано условное обозначение, предлагаемых действий. Зеленый стрелка указывает, что файл был изменен, добавлен или удален в папке источнике или папке назначения. Направление стрелки указывает направление изменений которые произойдут, если произвести синхронизацию. Вопросительный знак указывает на конфликт (то есть файлы были изменены и Unison не будет автоматически перезаписывать их).

Рисунок 11.1. Варианты синхронизации файлов

Чтобы изменить показанные Unison предложения для каждого файла (например, если вы захотите изменить каталог), выберите файл и нажмите справа налево или слева направо . Пропустить , исключает файлы из синхронизации. Символ в колонке Действия изменится соответствующим образом.

Для запуска синхронизации, нажмите Начать .

При следующем запуске Unison, будет показано диалоговое окно выбора профилей, с указанием пары каталогов для синхронизации. Выберите профиль или создайте новый (еще пару каталогов) и выполните синхронизацию, как описано выше.

11.4.3.2. Использование командной строки

Unison может быть также задействован через командную строку. Для синхронизации локального каталога с удаленным компьютером, проделайте следующее:

Откройте консоль и введите следующую команду:

Замените метки с соответствующих значений.

Unison спросит, что делать с вашими файлами и каталогами, например:

Нажмите F если вы хотите следовать рекомендациям Unison. Чтобы увидеть другие команды нажмите ? .

Нажмите y , если вы хотите обновить.

11.4.4. Копирование файлов с помощью FTP

Перед настройкой вашего FTP сервера, убедитесь, что выполняются следующие требования:

Установлен пакет vsftp .

У вас есть доступ root к FTP сервера.

Есть достаточно дискового пространства на вашем компьютере.

Эти настройки пригодны только для использования в домашних сетях. Не применяйте их к сайтам, которые не защищены брандмауэром и не разрешайте доступ из интернет.

Чтобы настроить FTP сервер, проделайте следующее:

Подготовка FTP сервера:

Откройте консоль, войдите в систему как root и сделайте резервную копию /etc/vsftpd.conf :

Создайте точку доступа для анонимного FTP

Замените файлы конфигурации в соответствии с вашими потребностями (смотрите man-страницу vsftpd.conf об опциях расширенной конфигурации):

Перезапустите FTP сервер

На клиентской машине, введите адрес ftp:// HOST в вашем браузере или FTP клиенте. Замените HOST именем хоста или IP адресом вашего сервера. Для пользователей доступно множество графических интерфейсов, которые подходят для навигации по вашему FTP серверу. Чтобы просмотреть их список, введите FTP в строке поиска менеджера пакетов YaST.

Простыми словами о сложном

12 мая 2012 г.

Копирование файлов по сети с помощью scp

sudo apt-get install openssh-server

scp -r ozone@192.168.1.2:name_file /home/ozone/

-r указан, если мы будем копировать папки, если копируем файл, то этот атрибут не указываем (подробно scp —help)
ozone@192.168.1.2 -имя учетной записи на настольном PC и IP адрес настольной PC
name_file -имя файла или папки, которую будем копировать (отчет идет от домашней директории, то есть файл name_file лежит в домашней директории, если где то в другом месте, тогда пример /var/name_folder/name_file)
/home/ozone/ -куда копировать (я копировал в свою домашнюю директорию)

Только для домашних сетей
Ссылка на основную публикацию
Adblock detector