Обновлено 30.06.2018
Иногда перед системными администраторами, особенно начинающими встает задача скопировать какой-то файл в CentOS, Ubuntu, Debian, FreeBSD, многие просто не знают, как это делается так как привыкли к Windows, другие используют ftp серверы и всякое такое, но есть способ с 100 раз проще с помощью файлового менеджера WinSCP, который работает по ssh. Сегодняшней темой будет описание ситуации, как происходит копирование файлов из windows в linux, уверен, что вам это окажется полезным.
Как перенести файл из Windows в Linux
Банальная ситуация, вам необходимо перенести файл драйвера или какого-либо пакета в вашу CentOS, на которой может не быть интернета, либо же файл, может быть огромного размера (дополнительные диски с софтом), случаи бываю разные. Вы как системный администратор, должны уметь копировать файл из Windows в Linux, по сети. Для решения нашей задачи есть, несколько утилит:
- WINSCP
- FileZilla
- Total Commander
Копирование файлов в Linux, через WinSCP
Скачиваете программу с официального сайта, там нет ничего сложного. Как поставить WinSCP описано тут. Запускаем, первое что нужно сделать это указать адрес сервера для ssh сессии. Жмем кнопку «New» для создания нового подключения.
Как из windows скопировать файл на CentOS, Ubuntu, Debian, FreeBSD-01
Вводим адрес и логин и жмем login. Обратите внимание, что подключение к серверу с Linux, будет осуществляться по протоколу SFTP.
Как из windows скопировать файл на CentOS, Ubuntu, Debian, FreeBSD-02
вводим пароль, что уже означает, что сессия установлена.
Как из windows скопировать файл на CentOS, Ubuntu, Debian, FreeBSD-03
и видим две панели слева это ваш компьютер, а справа это ваш linux. Как видите все очень удобно. Вы выбираете в левой половине нужный вам файл, перемещаясь по каталогам, далее вы выбираете с правой стороны, в какой из каталогов вы будите пытаться скопировать файл по ssh в linux.
Далее, как только файл выбран, нажмите клавишу F5, у вас появиться окно с подтверждением копирования. Нажимаем «ок» и файл будет перенесен в вашу Linux платформу. Как видите доступ к файлам windows из linux получен.
Копирование данных в Linux, через FileZilla
FileZilla — это удобная утилита, позволяющая так же как и WinSCP, устанавливать ssh подключения к линукс платформам по протоколу SFTP. Где скачать и как установить FileZilla, я вам рассказывал, на этом останавливаться не буду.
Далее вы открываете утилиту. в самом верху вы задаете:
- Хост — адрес подключения
- Имя пользователя
- Пароль
- Порт, по необходимости, если он не стандартный.
После того, как вы подключитесь, у вас появится сверху сообщение, что «Вы Авторизовались» и получен список каталогов. С левой стороны вы будите выбирать файлы для переноса из Windows в линукс, а с правой, будет структура каталогов ОС Linux, куда вы будите копировать файлы. Выделяете мышкой нужные файлы и переносите их.
Копирование данных с ПК с Windows в Linux — или в другом направлении — поначалу может показаться пугающим. В конце концов, это то, что кажется простым, но оказывается сложным.
По правде говоря, делиться файлами из Windows в Linux легко, но только если вы знаете, как это сделать. Готовы выяснить?
Перенос данных между операционными системами Windows и Linux проще, чем вы думаете. Мы собрали пять способов сделать это:
- Поделиться сетевыми папками
- Передача файлов с FTP
- Безопасное копирование файлов через SSH
- Обмен данными с помощью программного обеспечения для синхронизации
С помощью каждого из этих методов вы сможете легко (а в некоторых случаях легко) перемещать файлы между операционными системами.
Давайте посмотрим на них по очереди и выясним, какой из них подходит вам больше всего.
1. Совместное использование сетевых папок между Linux и Windows
Наиболее очевидный способ обмена файлами между Linux и Windows — это использование сетевых ресурсов. Этот термин относится к папкам на одном ПК, которые доступны пользователям на других компьютерах. В сети только для Windows это легко настроить. Добавление устройства Linux немного усложняет ситуацию, хотя это можно преодолеть.
Начиная с Windows, щелкните правой кнопкой мыши значок сетевого подключения на панели задач и выберите «Открыть сеть и настройки Интернета». Далее нажмите «Параметры общего доступа» и включите текущий профиль.
- Включить обнаружение сети
- Включите общий доступ к файлам и принтерам
Нажмите «Сохранить изменения» для подтверждения, затем перейдите в папку, содержащую файлы, которыми вы хотите поделиться. Щелкните правой кнопкой мыши папку, выберите «Свойства» и откройте вкладку «Общий доступ». Здесь нажмите «Расширенный общий доступ», затем установите флажок «Поделиться этой папкой».
Вы можете управлять доступом к папке через разрешения; это относится к локальным пользователям Windows, а не к сетевым устройствам.
Нажмите OK, чтобы подтвердить изменение, затем откройте вкладку Безопасность в Свойствах. Настройте это, чтобы отразить настройки в поле Полномочия ранее. Вам не нужно делать слишком много здесь, так как Windows 10 должна включать группу под названием Authenticated Users. Это используется для удаленного доступа к вашему компьютеру.
Снова нажмите ОК, когда вы закончите.
Чтобы найти общий ресурс Windows на ПК с Linux, просто откройте браузер файлов и выберите «Сеть». Отсюда перейдите к папке, размещенной в Windows, и начните обмен данными.
Доступ к общему ресурсу Linux из Windows
Чтобы переместить данные в другом направлении, вам нужно установить Samba на ваш компьютер с Linux.
sudo apt install samba
Затем установите имя пользователя для общего ресурса samba.
smbpasswd -a username
Вам будет предложено ввести пароль для новой учетной записи (не используйте для этого «имя пользователя»!).
Затем создайте каталог для обмена данными.
mkdir /home/[username]/Share
Затем отредактируйте файл smb.conf в своем текстовом редакторе:
sudo nano /etc/samba/smb.conf
Добавьте следующее в конец файла конфигурации:
[Share] path = /home/[username]/[folder_name] available = yes valid users = [username] read only = no browsable = yes public = yes writable = yes
Внесите необходимые изменения в соответствии со своими потребностями, затем нажмите Ctrl + X, чтобы выйти, и нажмите Y, чтобы сохранить. Далее перезапустите Samba:
sudo service smbd restart
После этого вы сможете получить доступ к общему ресурсу из Windows. Откройте проводник или браузер и введите IP-адрес или имя хоста удаленного устройства Linux, а затем имя папки. В нашем примере это
\192.168.1.233Share
2. Скопируйте файлы через SSH из Windows в Linux
С включенным SSH на вашем устройстве Linux вы можете отправлять данные через командную строку с одного компьютера на другой. Однако, чтобы это работало, вам нужно настроить SSH-сервер на вашем Linux-компьютере.
Начните с открытия терминала и обновления и обновления ОС.
sudo apt update sudo apt upgrade
После завершения установите сервер SSH. Сервер OpenSSH — хороший вариант.
sudo apt install openssh-server
Подождите, пока он установит. Чтобы в любой момент проверить, работает ли сервер OpenSSH, используйте
sudo service ssh status
Для передачи данных из Windows используйте SSH-клиент, например PuTTY. Это требует загрузки инструмента PSCP в вашу систему Windows для запуска вместе с PuTTY. Найти оба на домашней странице PuTTY.
Обратите внимание, что в то время как PuTTY нужно будет установить, PSCP — нет. Однако его следует сохранить в корне диска C: или настроить как переменную среды. Вам также необходимо подтвердить IP-адрес устройства Linux. Отметьте это на коробке с
ifconfig
После установления соединения вы можете отправлять данные следующим образом:
c:pscp c:somepathtoafile.txt user@remoteIP:homeusersomepathnewname.txt
Перед началом передачи вам будет предложено ввести пароль для компьютера с Linux.
Хотите скопировать данные из Linux в Windows в одном сеансе SSH? Эта команда загрузит указанный файл в текущий каталог:
c:pscp user@remoteIP:homeusersomefile.txt .
Обратите внимание на одиночный период в конце — включите его, иначе перевод не будет работать.
3. Как перенести файлы из Linux в Windows, используя FTP
Можно также использовать приложение протокола передачи файлов (FTP) с поддержкой SSH. Передача файлов через SFTP в пользовательском интерфейсе, управляемом мышью, возможно, проще, чем полагаться на набранные команды.
Опять же, сервер SSH должен быть запущен на компьютере с Linux перед началом работы. Вы также должны убедиться, что вы установили приложение FTP, такое как FileZilla, которое поддерживает SFTP.
Чтобы использовать этот метод, запустите FileZilla, затем откройте Файл → Менеджер сайтов. Создайте новый сайт, заботясь о том, чтобы установить протокол на SFTP. Добавьте целевой IP-адрес в Host, затем имя пользователя и пароль, установив тип входа в систему как Нормальный.
Нажмите Готово, когда будете готовы, затем используйте интерфейс FTP для перетаскивания файлов между двумя компьютерами.
4. Делитесь файлами между Linux и Windows с помощью Resilio Sync
Другим вариантом, который вы должны рассмотреть, является программа синхронизации файлов. Обычно они кроссплатформенные и используют зашифрованный ключ для управления соединением между устройствами.
Все, что вам нужно сделать, это установить приложение, назначить папку синхронизации, а затем создать ключ. Установите это на втором ПК, и ваши данные будут синхронизированы. Для этого есть два хороших варианта:
- Resilio Sync: ранее известная как BitTorrent Sync, Resilio доступна практически на любой платформе, о которой вы только можете подумать. Есть платная версия, но бесплатного варианта достаточно для синхронизации двух устройств.
- SyncThing: для Linux, Windows, macOS и Android эта альтернатива Resilio Sync предлагает аналогичную функцию без платного компонента.
Совместное использование файлов между Windows и Linux очень просто
Если вы новичок в Linux, или вы находите Windows незнакомой, обмен данными между ними проще, чем вы думаете.
Мы рассмотрели несколько методов. Мы рекомендуем вам попробовать все из них и решить, какой из них вам наиболее удобен.
Если у вас есть домашний сервер или сервер в интернете, то вам понадобится способ для безопасного перемещения файлов между машинами. Между локальными машинами мы могли бы просто переносить данные с помощью флешки, но на удаленный сервер нужно передавать данные только через сеть. Есть много способов реализации этой задачи.
В этой статье мы рассмотрим как выполняется копирование файлов с помощью утилиты scp (Secure Copy Command), а также что из себя представляет команда Linux scp. При передаче файлы шифруются, так что больше никто не сможет получить к ним доступ и самое интересное, что вам не нужно настраивать FTP или другое дополнительное программное обеспечение. Будет достаточно сервера SSH.
Команда scp — это утилита, которая работает по протоколу SSH, а значит, все что вам нужно для передачи файла на компьютер, это чтобы на нем был запущен SSH сервер, а также вы должны знать логин и пароль для подключения к нему. С помощью команды scp вы можете не только перемещать файлы между локальной и удаленной системой, но и между двумя удаленными системами. Для этого тоже будет достаточно знать пароли от них. И в отличие от Rsync вам не нужно авторизоваться на одном из серверов.
Копирование файлов scp
Эта статья рассчитана в первую очередь на начинающих, поэтому я попытаюсь объяснять все как можно подробнее. Перед тем, как мы перейдем к практике, нужно рассмотреть общий синтаксис команды:
$ scp опции пользователь1@хост1:файл пользователь2@хост2:файл
Опции утилиты больше касаются протокола SSH и настраивают общее ее поведение. Дальше следует адрес первого и второго файла. Каждый из них может быть расположен как на локальной, так и на удаленной машине. А теперь рассмотрим основные опции, которые могут нам понадобиться:
- -1 — использовать протокол SSH1;
- -2 — использовать протокол SSH2;
- -B — пакетный режим для передачи нескольких файлов;
- -C — включить сжатие;
- — l — установить ограничение скорости в кбит/сек;
- -o — задать нужную опцию SSH;
- -p — сохранять время модификации;
- -r — рекурсивное копирование директорий;
- -v — более подробный режим.
scp /home/sergiy/file root@losst.pro:/root/
В качестве пользователя нужно использовать любого пользователя, который есть на сервере. Вместо IP вы можете также домен сервера. Только необходимо, чтобы у выбранного пользователя были права записи в указанную папку.
С помощью опции -r вы можете скопировать на удаленную машину целый каталог. Команда будет выглядеть вот так:
scp -r /home/sergiy/photos root@losst.pro:/root/
Убедитесь, что у исходного каталога нет косой черты, а у каталога назначения она должна обязательно быть. Немного изменив синтаксис с косой чертой можно передать все файлы из каталога на удаленный сервер:
scp -r /home/sergiy/photos/* root@losst.pro:/root/
Если поменять местами локальный путь и сервер, то вы сможете копировать файлы scp c удаленного сервера на локальный компьютер:
scp root@losst.pro:/root/file /home/sergiy/
Таким же самым образом вы можете копирование файлов scp или папок с сервера:
scp -r root@losst.pro:/root/photos /home/sergiy/
Обратите внимание, что папка, в которую вы собираетесь копировать должна завершаться косой чертой, иначе папка, которую вы копируете запишется вместо той, в которую нужно скопировать.
Чтобы скачать файл scp из одного сервера на другой, просто необходимо указать данные аутентификации на каждом из них. Например, скопируем один файл:
scp root@losst.pro:/home/root/index.html root@losst.pro:/home/root/www/
Скопируем папку с того же удаленного сервера:
scp root@losst.pro:/root/photos root@losst.pro:/home/root/www/
Выводы
В этой статье мы рассмотрели как выполняется передача файлов scp, как это работает и что вы можете сделать с помощью этой утилиты. Как вы видите, перемещать файлы с одного сервера на другой очень просто. В Linux достаточно понять основы чтобы начать работать эффективнее! А команда scp один из таких инструментов.
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .
Об авторе
Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.
В статье мы расскажем, как копировать файлы в 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».
Как скопировать файл по SSH с одного удалённого сервера на другой
Подключитесь по SSH к серверу, на котором расположен файл. Затем выполните команду:
scp [путь к файлу] [имя пользователя]@[имя сервера/ip-адрес]:[путь к файлу]
Пример команды:
scp /home/test.txt root@123.123.123.123:/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 docsfile name” root@123.123.123.123:/home
На чтение 2 мин Просмотров 481 Опубликовано 25.01.2018
Попалась тут задачка. Есть сервер на Centos 7. В локальной сети без доступа в интернет от слова — совсем. Есть сервер под управлением Windows на котором есть сетевой диск Share_it$ с которого надо получить файлы из директории This. На сервере где стоит Centos есть только samba client (smbclient) и никакой возможности что-то еще доустановить -ни cifs-utils, ни smbfs. Ну что же, попробуем с тем что есть. В конце-концов smbclient — это что-то вроде ftp-client, следовательно он может и без посторонних утилит копировать файлы. Приступим.
- Определяем что можем подключиться к серверу SMB и посмотреть список открытых сетевых ресурсов:
smbclient -L 10.10.10.2 -U%
Где 10.10.10.2 — адрес сервера с SMB ресурсом. Если выведет что-то вроде Access Denied — значит доступ в директорию ограничен и требуется ввести логин-пароль. Клиент их по идее должен запросить сам в интерактивном режиме.
- Теперь нам нужно перейти в директорию куда мы будем складывать наши файлы получаемые c SMB:
cd /path/to/dir
- Подключаемся к нужному сетевому ресурсу:
smbclient //10.10.10.2/SHARE_it$
- Выводим список файлов в сетевом ресурсе:
dir
- Перемещаемся в нужную нам директорию:
cd This
- Выводим список файлов в директории This:
dir
- Копируем каждый файл командой:
get filename1.txt get filename2.txt get filename3.txt
- Отключаемся:
quit
- Проверяем что файлы скопировались:
ls
На этом собственно всё. Мы скопировали файлы с удаленного smb-ресурса имея под рукой только smb-client
( 1 оценка, среднее 5 из 5 )
Если вы хотите копировать или перемещать данные между операционными системами Windows и Linux, это проще, чем вы думаете. Мы собрали для вас четыре способа сделать это:
- Безопасное копирование файлов через SSH
- Передача файлов из Windows в Linux через FTP
- Обмен данными с помощью программного обеспечения для синхронизации
- Используйте общие папки на вашей виртуальной машине
С помощью каждого из этих методов вы сможете легко и без особых усилий перемещать файлы между операционными системами. Давайте рассмотрим их по очереди и выясним, какой из них вам больше подходит.
1. Копирование файлов между Windows и Linux через SSH
Если на вашем устройстве Linux включен SSH, вы можете отправлять данные с одного компьютера на другой через командную строку. Для этого вам необходимо настроить SSH-сервер на вашем Linux-компьютере.
Начните с обновления ОС.
sudo apt update
После завершения обновлений установите SSH-сервер. Сервер OpenSSH — хороший вариант.
sudo apt install openssh-server
Подождите, пока он установится. Чтобы проверить, запущен ли сервер OpenSSH, наберите:
sudo service ssh status
Для передачи данных из Windows используйте SSH-клиент, например PuTTY. Для этого требуется, чтобы инструмент PSCP (клиент безопасного копирования) загружался в вашу систему Windows, чтобы работать вместе с PuTTY. Найдите оба на домашней странице PuTTY.
Обратите внимание, что PuTTY необходимо установить, а PSCP работает без инсталляции. Просто сохраните загруженный файл pscp.exe в корне диска Windows C: или настройте его как переменную среды. Вам также необходимо подтвердить IP-адрес устройства Linux. Зарегистрируйтесь в терминале Linux с помощью
hostname -I
Установив соединение, вы можете перенести файл из Windows в Linux следующим образом:
c:pscp c:
omepathtoafile.txt [email protected]:homeuser
omepath
ewname.txt
Вам будет предложено ввести пароль для компьютера Linux перед началом передачи.
Хотите скопировать данные из Linux в Windows в одном сеансе SSH? Эта команда загрузит указанный файл в текущий каталог:
c:pscp [email protected]:homeuser
omefile.txt .
Обратите внимание на одинокий период в конце — включите это, иначе передача не будет работать.
2. Как перенести файлы из Linux в Windows с помощью FTP
Также можно использовать приложение протокола передачи файлов (FTP) с поддержкой SSH. Перенос файлов через SFTP в пользовательском интерфейсе, управляемом мышью, возможно, проще, чем полагаться на вводимые команды.
Перед запуском на машине Linux должен быть запущен SSH-сервер. Вам также следует убедиться, что вы установили приложение FTP в Windows, например FileZilla, которое имеет поддержку SFTP.
Чтобы использовать этот метод, запустите FileZilla, затем:
- Откройте File > Site Manager
- Создать New Site
- Установите протокол на SFTP
- Добавьте целевой IP-адрес в Host
- Укажите логин и пароль
- Установите тип входа в систему Normal
- Нажмите Connect, когда будете готовы.
Затем вы можете использовать приложение FTP для перемещения файлов из Windows в Linux и обратно с помощью перетаскивания.
Другой вариант, который можно рассмотреть, — это программа для синхронизации файлов. Обычно они кроссплатформенные и используют зашифрованный ключ для управления соединением между устройствами.
Все, что вам нужно сделать, это установить приложение, назначить папку синхронизации, а затем создать ключ. Настройте это на втором ПК, и ваши данные будут синхронизированы. Для этого доступны два хороших варианта:
- Resilio Sync: ранее известная как BitTorrent Sync, Resilio доступна практически для любой платформе, о которой вы можете подумать. Есть платная версия, но бесплатной достаточно для синхронизации двух устройств.
- SyncThing: для Linux, Windows, macOS и Android эта альтернатива Resilio Sync предлагает аналогичную функцию без платного компонента.
Вместо отдельного ПК обычно запускают Linux или Windows на виртуальной машине (ВМ). Есть ли способ передавать файлы между Windows и Linux, если они установлены на виртуальной машине?
К счастью, да. В VirtualBox вы можете создать виртуальный общий каталог для синхронизации данных.
Если вы используете Windows на виртуальной машине в Linux (или наоборот), VirtualBox уже настроен для совместного использования. Перед продолжением убедитесь, что на вашей виртуальной машине установлены гостевые дополнения.
В диспетчере VirtualBox выберите виртуальную машину, затем:
- Выберите Start> Headless Start (или при работающей виртуальной машине, Devices> Shared Folders)
- После запуска щелкните правой кнопкой мыши виртуальную машину и выберите «Настройки»> «Общие папки».
- Выбирать Machine Folders
- Щелкните символ + справа (или щелкните правой кнопкой мыши и выберите Добавить общую папку)
- Просмотрите путь к папке и найдите каталог, который хотите использовать.
- Задайте имя (при необходимости), затем ОК
- Установите флажок Auto-mount, чтобы обеспечить доступность общего ресурса при запуске виртуальной машины.
- Еще раз нажмите ОК, чтобы подтвердить и выйти.
Когда вы перезагрузите виртуальную машину, общий ресурс будет готов для обмена данными между хост-компьютером и гостевой операционной системой.
Есть еще один вариант обмена файлами между ПК с Windows и Linux. Однако создание общего файла в одной или обеих системах с последующим доступом к нему по сети в лучшем случае ненадежно.
Обмен файлами между Windows и Linux очень прост
Независимо от того, новичок ли вы в Linux или находите Windows незнакомой, обмен данными между ними проще, чем вы думаете. Мы рассмотрели несколько методов и рекомендуем вам попробовать каждый из них и решить, какой из них вам наиболее удобен.
2102010cookie-checkОбмен файлами между Windows и Linux
Автор публикации
Комментарии: 6Публикации: 1203Регистрация: 29-04-2020
Подключение к серверу посредством SSH – один из основных методов управления *nix серверами. Довольно часто возникает необходимость загрузить файл на удаленный сервер, либо выгрузить, и других средств кроме SSH-подключения нет. К счастью, копирование файлов через защищенное соединение – одна из штатных функций этого протокола и реализуется с помощь отдельной команды scp в Linux-системах, либо с помощью pscp.exe, входящей в состав SSH-клиента Putty для операционной системы Windows.
Работаем на ОС семейства Linux
Используем следующий формат команд:
scp [модификатор] [источник] [место_назначения]
Если в качестве источника или места назначения указывается удаленный сервер, то формат параметра такой:
[пользователь]@[сервер]:[путь_к_файлу]
После запуска команды потребуется ввести пароль от указанной учетной записи удаленного сервера.
Если собрать все вместе, то скопировать локальный файл /home/user/file.tgz в домашний каталог пользователя root удаленного сервера 123.123.123.123 можно командой:
scp /home/user/file.tgz root@123.123.123.123:/root
Чтобы скачать этот же файл с удаленного сервера:
scp root@123.123.123.123:/root/file.tgz /home/user
За одну операцию можно скопировать несколько файлов, для этого необходимо указать их в качестве источника, разделив пробелом – местом назначения будет считаться последний указанный параметр. Например, загрузить файлы file1.tgz и file2.tgz из локального каталога на удаленный сервер позволит команда:
scp file1.tgz file2.tgz root@123.123.123.123:/root
Для копирования каталога потребуется задействовать модификатор команды –r. Копируем локальный каталог /home/user/dir на удаленный сервер:
scp –r /home/user/dir root@123.123.123.123:/root
В тех случаях, когда SSH-сервер работает на нестандартном порту, поможет опция –P. Если нужно подключиться через порт 10022:
scp –P 10022 /home/user/file.tgz root@123.123.123.123:/root
Чтобы узнать какие еще модификаторы поддерживает команда, можно просто запустить scp без параметров и прочитать краткую справку.
Работаем на ОС семейства Windows
При использовании операционной системы Windows и Putty в качестве клиента, формат команды остается тот же, меняется только название исполняемого файл и используется синтаксис указания путей к файлам и каталогам Windows при указании источника или места назначения. Запускаем командную строку (cmd.exe) или PowerShell, переходим в каталог, где расположен файл pscp.exe вводим команду:
pscp.exe C:Tempfile.tgz root@123.123.123.123:/root
В случае запуска из какой-либо другой папки понадобится указать полный путь к pscp.exe. Если в каком-либо из путей присутствуют пробелы, используются двойные кавычки — “Путь к файлу”:
“C:Program FilesPuttypscp.exe” C:Tempfile.tgz root@123.123.123.123:/root
Как и в случае с scp, запустив pscp.exe без параметров, можно увидеть краткую справку по синтаксису команды и перечень поддерживаемых модификаторов.
Запуск команд на удаленном сервере через SSH-подключение
Протокол SSH, помимо работы в интерактивном режиме, поддерживает также разовый запуск команд или скриптов на удаленном сервере.
Работаем на ОС семейства Linux
Синтаксис команды:
ssh [пользователь]@[сервер] ‘[команда]’
При запросе вводим пароль указанного пользователя и в консоли получаем вывод команды, если таковой имеется.
Например, получим информацию об установленной на удаленном сервере операционной системе:
ssh root@123.123.123.123 ‘uname -a’
Чтобы запустить несколько команд за одно подключение, можно использовать символ “;” в качестве разделителя. Проверим сетевые настройки и активные сетевые подключения на удаленном сервере:
ssh root@123.123.123.123 ‘ifconfig; netstat -anp tcp’
В случае, если потребуется запустить на удаленном сервере локальный файла сценария, потребуется в SSH-подключении вызвать командный интерпретатор в режиме исполнения сценария (например, bash с ключом -s), и на стандартный ввод передать ему файл сценария. Выглядеть эта конструкция будет так:
ssh root@123.123.123.123 ‘bash -s’ < /home/user/myscript.sh
В результате локальный файл /home/user/myscript.sh исполнится на удаленном сервере.
Запуск команды SSH без параметров позволит ознакомиться с краткой справкой по синтаксису и списком дополнительных модификаторов, которые позволяют расширить функциональность команды.
Работаем на ОС семейства Windows
Если мы подключаемся к удаленному серверу с компьютера, работающего на операционной системе Windows, то нам снова потребуется обратиться к терминальному клиенту Putty, в состав которого входит исполняемый файл plink.exe. Работать с этим файлом необходимо из командной строки (cmd.exe) или из PowerShell.
Для запуска команды на удаленном сервере используется следующий синтаксис:
plink.exe [сервер] -ssh -l [пользователь] “[команда]”
Проверим конфигурацию сетевых интерфейсов:
plink.exe 123.123.123.123 -ssh -l root “ifconfig”
Как и при работе с командой SSH в Linux, plink.exe позволяет использовать “;” в качестве разделителя для запуска нескольких команд:
plink.exe 123.123.123.123 -ssh -l root “ifconfig; netstat -anp tcp”
А запуск команд из локального файла можно реализовать с помощью дополнительного ключа —m:
plink.exe 123.123.123.123 -ssh -l root -m “C:Tempmyscript.sh”
Запустив команду plink.exe без параметров, можно ознакомиться с краткой справкой по синтаксису и списком дополнительных модификаторов команды.
Аverage rating : 4
Оценок: 8
191028
Санкт-Петербург
Литейный пр., д. 26, Лит. А
+7 (812) 403-06-99
700
300
ООО «ИТГЛОБАЛКОМ ЛАБС»
191028
Санкт-Петербург
Литейный пр., д. 26, Лит. А
+7 (812) 403-06-99
700
300
ООО «ИТГЛОБАЛКОМ ЛАБС»
700
300
Решили ли вы перейти на другую операционную систему? Если ваш ответ «да», возможно, вам придется научиться копировать файлы с ПК с Windows на Linux. Поначалу внесение изменений может показаться сложным, но вы станете профессионалом, как только пройдете первоначальную настройку.
Хотя копировать файлы из одной программы в другую относительно просто, вам все равно нужно научиться делать это правильно. Продолжайте читать, чтобы узнать о различных вариантах передачи файлов.
Чтобы перенести файлы из одной операционной системы в другую, вы должны выбрать наиболее подходящий для вас метод. Вы можете выбрать один из четырех методов:
Узнайте подробности о каждом методе в разделах ниже.
Копировать данные с ПК с Windows на Linux с помощью SSH
Secure Shell (SSH) — это особый сетевой протокол, который предлагает пользователям безопасный доступ к другому устройству. Поэтому ваш первый шаг в этом методе — включить SSH на вашем устройстве Linux. Как только вы это сделаете, вы сможете копировать файлы через командную строку из Windows в Linux.
Как настроить SSH-сервер в Linux
- Вам потребуется открыть терминал и обновить операционную систему.
- Установите сервер SSH через сервер OpenSSH. Этот сервер позволяет устранить все потенциальные угрозы вашим данным.
- Пока вы ждете, пока сервер SSH завершит установку, вы можете убедиться, что сервер OpenSSH работает правильно, используя статус SSH службы Sudo.
- Установите SSH-клиент, например PuTTY. Это совершенно бесплатное приложение для передачи файлов между разными сетями, но оно не может работать без PSCP или клиентского инструмента безопасного копирования PuTTY.
- Загрузите и сохраните файл pcp.exe на диске Windows C:.
- Скопируйте файлы из Windows в Linux, используя следующий код:
c:pscp c:
omepathtoafile.txt [email защищено]:homeuser
omepath
ewname.txt
Обратите внимание, что вам нужно будет ввести пароль вашего компьютера Linux перед файлом начинается передача.
Копирование данных с ПК с Windows на Linux с помощью FTP
Протокол передачи файлов (FTP) — еще один отличный способ скопировать данные из Windows в Linux. Многим этот метод может показаться более удобным, так как вам не нужно вводить никаких команд. Проверьте свой сервер Linux и убедитесь, что он запущен и работает для этого подхода. Кроме того, вам понадобится приложение, например FileZilla, для передачи по FTP.
- Запустите приложение FileZilla.
- Откройте “Диспетчер сайтов”
- Создайте “Новый сайт”
- Измените “SFTP” протокол.
- Введите целевой IP-адрес в поле “Host” section.
- Добавьте свое имя пользователя и пароль.
- Переключитесь на “Нормальный” для “Вход в систему” type.
- Нажмите “Подключиться”
< img src=»/wp-content/uploads/2022/07/b2745f229d4f8e18ad807343cc12360c.png» />
После этого вы сможете использовать приложение FTP для перемещения файлов с одного сервер на другой.
Копирование данных с ПК с Windows на Linux с помощью программного обеспечения для синхронизации
Еще одним вариантом является использование программы синхронизации файлов для копирования файлов из Windows в Linux. Обычно эти программы управляют соединением между двумя устройствами или системами с помощью зашифрованного ключа. Для этого метода можно использовать два отличных приложения:
Выбираете ли вы первый или второй вариант, они работают одинаково . После того, как вы установите нужное приложение в Windows и выберете папку для синхронизации, вы сможете создать необходимый ключ. Когда вы настроите его в Linux, ваши данные начнут синхронизироваться между двумя системами.
Копирование данных с ПК с Windows на Linux с помощью виртуальной машины Linux
Вам не нужен полностью отдельный ПК для передачи данных. Существует способ скопировать ваши файлы из Windows в Linux, запустив одну из ваших систем, Windows или Linux, на виртуальной машине. Это позволит вам запускать другую систему в окне приложения и использовать ее как другой компьютер.
Чтобы объединить две ваши системы в один компьютер, вам понадобится дополнительное программное обеспечение. Одним из наиболее распространенных является Oracle VM VirtualBox. Эта платформа позволяет пользователям активно работать с несколькими операционными системами на одном устройстве.
Как настроить платформу VirtualBox
- Установите платформу гостевых дополнений VirtualBox.
- Выберите “Безголовый запуск” после нажатия “Старт” (значок зеленой стрелки).
- Найдите “Общие папки&rdquo ; в “Настройки”
- Выберите “Машинные папки”
- Добавьте общую папку, нажав значок “+ ” в правом верхнем углу окна.
- Выберите &ldquo ;Путь к папке” из каталога и имени.
- Убедитесь, что общая папка доступна при запуске виртуальной машины. Для этого установите флажок “Auto-mount” перед подтверждением выбора.
- Нажмите кнопку “ОК” кнопку.
- Перезагрузите “Виртуальную машину” системы, и установка будет готова к использованию.
Теперь вы можете копировать файлы между хост-компьютером (Windows) и гостевой системой (Linux) или наоборот.
Перенос данных с уверенностью
Самая важная часть изучения того, как копировать файлы с ПК с Windows на Linux, — сохранять непредвзятость. Если вы не знакомы с одной из двух операционных систем, потребуется некоторое время, чтобы научиться управлять передачей файлов между ними.
Один из лучших способов передачи файлов — предоставить все вышеупомянутые методы попробовать. Вы исключите те, которые вам не подходят, и найдете те, которые вам нравятся. В конце концов, вы сможете упростить процесс, используя метод, который вам подходит.
Какие методы вы пробовали до сих пор и какой из них был для вас самым простым? Поделитесь своим опытом в комментариях ниже.
06.12.2017 14:09:00
Часто требуется перенести большой объем данных с одного сервера на другой. Если это делать через промежуточные узлы, например домашний компьютер, на это уйдет очень много времени. Утилита SCP работает по протоколу SSH и позволяет перенести данные без промежуточных звеньев. Рассмотрим ее в действии.
1) Рассмотрим простой вариант. Вы подключились к серверу 1 по ssh и Вам надо скопировать данные с сервера 1 на сервер 2.
Для этого прописываем команду (общий синтаксис команды)
scp <ключи опций> / dir1 user2@server2:/dir2/
где:
dir1 - <путь к папке, файлам на сервере 1, которую будем копировать>
dir2 - <путь к папке на сервере 2, куда будут копироваться данные>
Ключи:
-r //для копирования файлов и папок;
-C //включить сжатие;
—l //установить ограничение скорости в кбит/сек;
и другие ключи
Особое внимание уделите следующему:
1) Папка, в которую вы собираетесь копировать должна завершаться косой чертой, иначе папка, которую вы копируете запишется вместо той, в которую нужно скопировать.
2) Необходимо, чтобы у выбранного пользователя были права записи в указанную папку.
Пример использования команды:
scp -r /home/bitrix/www/upload root@172.172.172.172:/home/bitrix/www/
Утилита запросит пароль от пользователя на сервере 2 и после начнет копировать файлы и папки
2) Мы подключились к серверу 2 и хотим скопировать с сервера 1, тогда команда будет выглядеть наоборот
scp -r root@170.170.170.170:/home/bitrix/www/upload /home/bitrix/www/
3) Мы можем находясь на сервере 3 перенести данные с сервера 1 на сервер 2, тогда команда будет выглядеть так
scp -r root@170.170.170.170:/home/bitrix/www/upload root@172.172.172.172:/home/bitrix/www/
Предыдущая новость
Centos. Установка ZIP и UNZIP
Следующая новость
Centos. Scp: команда не найдена