Как скопировать на сервер файл windows
Обновлено: 04.07.2024
Утилиту «ftp.exe», входящую в состав Windows по умолчанию, можно запустить из командной строки. Она позволяет скачивать и загружать файлы по протоколу FTP вручную, но главное ее достоинство — функции автоматизации. С ее помощью можно запланировать и автоматизировать передачу файлов по FTP на регулярной основе.
Чтобы получить справку по утилите FTP, введите в командной строке ftp -? и нажмите [Enter]. Чтобы посмотреть список доступных команд, введите ftp и нажмите [Enter] для запуска утилиты, а затем введите ? и снова нажмите [Enter]. Для завершения работы утилиты введите bye и нажмите [Enter].
Для автоматизации загрузки и скачивания можно использовать командные файлы и сценарии FTP. Ниже приводятся примеры таких сценариев. Замените в них выделенный курсивом текст на нужное имя хоста, имя пользователя, пароль, путь к локальному файлу и путь к удаленному каталогу.
Передача одного файла
Скопируйте в Блокнот (Notepad) следующий текст, подставив нужные значения, и сохраните его как «H:\TransferTest\transfer.bat».
Назначение команд:
• ftp — запускает утилиту FTP;
• -v — отключает вывод информации об ответах удаленного FTP-сервера;
• -n — отключает автоматический вход;
• -s: — указывает путь к файлу, содержащему команды для FTP-передачи. Путь не должен содержать пробелов .
Затем скопируйте в Блокнот следующий текст, подставив нужные значения, и сохраните его как «H:\TransferTest\transfer.ftp».
Назначение команд:
• open — открывает удаленный FTP-сервер;
• user — указывает имя пользователя для входа на сервер;
• password — указывает пароль для входа на сервер;
• cd — переходит в указанный удаленный каталог для загрузки файлов, в данном примере — «/public_ftp/test»;
• put — загружает указанный локальный файл на удаленный сервер; кавычки можно не использовать, если путь не содержит пробелов;
• bye — завершает сеанс подключения и работу утилиты FTP.
Совет: команды FTP можно сокращать до трех символов — например, использовать bin вместо binary.
Еще один совет: длинные пути неудобно вводить вручную — это слишком долго, да к тому же, высока вероятность совершить ошибку. Чтобы облегчить себе задачу, воспользуйтесь одним из следующих методов:
• Откройте в Проводнике папку, в которой хранится нужный файл, нажмите правой кнопкой мыши на любом фрагменте адреса в адресной строке и выберите опцию «Копировать адрес как текст» (Copy Address as Text). Вставьте скопированный адрес в сценарий FTP и добавьте к нему имя файла.
• Нажмите правой кнопкой мыши на файле в Проводнике, выберите опцию «Свойства» (Properties) и откройте вкладку «Безопасность» (Security). Скопируйте полный путь к файлу из строки «Имя объекта» (Object name) и вставьте его в сценарий FTP.
В командной строке введите H:\TransferTest\transfer.bat и нажмите [Enter] или запустите командный файл двойным щелчком. При этом может появиться предупреждение безопасности, показанное на рис. I.
Рисунок I. Выберите опцию «Общественные сети» (Public Networks) и нажмите кнопку «Разрешить доступ» (Allow Access).
Рисунок J. Команда put загружает файл с клиентского компьютера на сервер. Если такой файл на сервере уже есть, он будет заменен.
Для скачивания файла с удаленного сервера на клиентский ПК используется команда get.
Передача нескольких файлов
Скопируйте в Блокнот следующий текст, подставив нужные значения, и сохраните его как «H:\TransferTest\multiple_transfer.bat».
Скопируйте в Блокнот следующий текст, подставив нужные значения, и сохраните его как «H:\TransferTest\multiple_transfer.ftp».
Назначение команд:
• open — открывает удаленный FTP-сервер;
• user — указывает имя пользователя для входа на сервер;
• password — указывает пароль для входа на сервер;
• cd — переходит в указанный удаленный каталог для загрузки файлов, в данном примере — «/public_ftp/test»;
• prompt — отключает интерактивные приглашения на ввод при загрузке множественных файлов с использование команды mput;
• mput — загружает указанные файлы ASCII с локального ПК; кавычки можно не использовать, если путь не содержит пробелов;
• lcd — переходит в указанный локальный каталог, в котором хранятся файлы для загрузки, в данном примере — «\Projects\PSWW\VIC\Package»;
• binary — переключается в режим двоичной передачи;
• mput — загружает указанные бинарные файлы с локального ПК; кавычки можно не использовать, если путь не содержит пробелов;
• bye — завершает сеанс подключения и работу утилиты FTP.
Теперь в командной строке введите H:\TransferTest\multiple_transfer.bat и нажмите [Enter] или запустите командный файл двойным щелчком (рис. K).
Рисунок K. Этот сценарий позволяет загрузить на сервер сразу несколько файлов.
Обратите внимание — я использовал команду cd для смены каталога в командном файле и команду lcd для смены локального каталога в сценарии FTP, чтобы упростить команду mput за счет использования относительного пути вместо полного.
Совет: пробелы в именах файлов могут привести к возникновению проблем при передаче файлов, поэтому вместо них желательно использовать подчеркивания, если это возможно.
Команда mput позволяет загрузить несколько файлов с клиентского компьютера на удаленный сервер. Если на сервере такие файлы уже существуют, они будут заменены.
Для скачивания нескольких файлов с удаленного сервера на локальный ПК используйте команду mget.
Передача текстовых и бинарных файлов
Передача текстовых (ASCII) и двоичных файлов с помощью утилиты FTP осуществляется по-разному. По умолчанию, утилита загружает файлы в режиме ASCII — именно такой способ используется в приведенном выше примере с передачей одного файла. В примере с загрузкой нескольких файлов присутствуют оба типа файлов — и ASCII, и бинарные. Чтобы предотвратить потерю данных, необходимо использовать подходящий метод передачи для каждого конкретного файла.
Проблемы безопасности
При передаче файлов по протоколу FTP возникает очевидная угроза безопасности. Если имя пользователя и пароль хранятся в незашифрованном текстовом файле, их может украсть любой, кто имеет доступ к компьютеру. Так что сценарий FTP стоит зашифровать. Подробнее о шифровании можно узнать в штатной справке Windows, воспользовавшись поиском по ключевому слову «шифрование». Нужные сведения содержатся в разделе «Шифрование или расшифровка папки или файла» (Encrypt or Decrypt a Folder or File). О шифровании в Windows 2000, Windows Server 2003, Windows XP, Windows Vista и Windows 7 рассказывается также на сайте Microsoft. В Википедии приводится полный версий Windows, поддерживающих систему шифрования данных Encrypting File System (EFS). Кроме того, можно воспользоваться сторонним приложением для шифрования, например, TrueCrypt.
Проблемы при использовании брандмауэра
В заключение
Прежде чем пускаться на поиски стороннего приложения для работы с FTP, обратите внимание на встроенные инструменты Windows. Возможно, одного из описанных методов будет вполне достаточно для выполнения стоящих перед вами задач.
Подключение к серверу посредством 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:
Для передачи файлов через буфер обмена в Hyper V виртуальную машину есть несколько способов. Каждый из них отличается от версии операционной системы и условий в которых вы его хотите использовать, но любой из них позволяет копировать файлы в виртуальную машину с хоста и обратно.
Первый вариант работает с версий ВМ Windows Server 2012 R2 и Windows 8.1 и называется Enhanced Session Mode (ESM). Эта возможность работает по тому же принципу, что и RDP, то есть мы можем использовать не только буфер обмена, но и USB устройства, принтеры и так далее. Отличия от RDP в том, что мы не используем сеть в данном случае, но если у вас настроены политики ограничивающие RDP подключения они могут быть причиной ошибок.
По умолчанию Enhanced Session Mode включен. Мы можем проверить ее если зайдем в настройки Hyper V:
Или выполнить аналогичное через Powershell:
Настройка расширенного сеанса Hyper V (ESM) устанавливается только на уровне сервера, но что бы у нас работала возможность копирования нужно включить и пакет интеграции Hyper V, который по умолчанию отключен. Эта служба интеграции называется Guest services (Гостевая служба), и она включается у каждой виртуально машины отдельно. Для ее включения зайдем в настройки виртуально машины:
И включить гостевую службу:
Аналогичную настройку через Powershell можно сделать так:
Последнее что нужно сделать - это включить службу "Remote Desktop Services":
Можно установить и в консоли PS:
Теперь включим виртуальную машину и подключимся к ней:
О том что у нас включен режим расширенного сеанса можно увидеть по следующему окну. Если мы хотим проверить, что возможность использования буфера у нас включена нужно зайти в дополнительные настройки:
На второй закладке стоит галочка под Clipboard (Буфер обмена) - это то что нам нужно:
После этого у нас будет работать в Hyper V буфер обмена путем копирования/вставки, а перетаскивание файлов в виртуальную машину работать не будет, так как такого функционала нет.
Мы так же можем использовать Powershell:
Microsoft описывает проблему, при которой копирование так же не будет работать и оно связано с политиками. По следующему пути нужно изменить политику с "Do not allow drive redirection" на "Disabled" или "Not Configured":
Такого пути в групповых политиках я у себя не нашел.
Передача файлов в Hyper V через публичную папку
Второй вариант это создать в Hyper V виртуальную сеть через внутренний коммутатор. Внутренний или Internal коммутатор не использует физический сетевой адаптер и разрешает пользоваться таким типом соединения хосту Hyper V и виртуальным машинам. Таким образом затрачиваемые ресурсы, при копировании в Hyper V большого объема данных, не будут сильно отличаться от первого способа.
Для создания внутреннего коммутатора нужно зайти в окно управления свичами:
В новом окне выбрать "Internal" или "Частный":
Ввести имя коммутатора и подтвердить создание:
Это делается в Powershell одной командой:
После этого для каждой виртуальной машины, с которой мы хотим обмениваться данными, нужно подключить адаптер к этому коммутатору. Для этого зайдем в настройки виртуальной машины:
Теперь создадим виртуальный сетевой адаптер:
Теперь подключим адаптер к коммутатору:
В случае с Powershell это так же одна команда:
В виртуальных машинах отобразится новое подключение и возможно потребуется настроить IP адрес, так как скорее всего у нас не будет доступ к DHCP серверу. Далее можно подключаться к машинам по сетевому пути.
Копирование файлов в Hyper V через виртуальный диск
Этот способ заключается в подключении виртуального диска отключенной ВМ. Мы можем создать новый диск или использовать системный диск операционной системы. Я крайне не рекомендую использовать этот способ, так как в случае существования чекпоинтов/снэпшотов на этой ВМ или если вы забудете размонтировать диск, это может привести к необратимым последствиям.
Вы можете создать диск воспользовавшись статьей "Создание виртуальных дисков в Hyper V". Папку, где лежит виртуальный диск можно увидеть через настройки виртуальной машины:
Если путь заканчивается на avhdx, то вы используете контрольную точку. Для монтирования диска нужно перейти по пути и выбрать Mount у vhd/vhdx файла:
В моем случае появилось два раздела, так как это системный диск. Для размонтирования дисков нужно кликнуть по разделу и нажать Eject.
Если хотите выполнить команду через Powershell, то это можно сделать так:
Командлет выше подразумевает, что у вас подключен один диск. В случае нескольких дисков запустите:
Копирование в Hyper V используя буфер обмена с RDP
Последний способ подключения работает через "Подключению к удаленному рабочему столу" или RDP. Для такой возможности копирования, кроме открытых портов и включенной возможности в свойствах компьютера дополнительных требований нет. Так же стоит проверить галочку в свойствах подключения RDP:
В этом уроке мы узнаем, как установить и использовать инструмент pscp в операционной системе Windows.
Утилиту pscp можно скачать по следующей ссылке.
Существуют разные типы установки.
pscp может быть установлен в автономном режиме или с пакетом установки putty.
Я предпочитаю установочный пакет Putty, где настройка конфигурации Пути также выполняется автоматически.
Как видим, есть 32- и 64-битные версии.
Я буду использовать 64 бит, потому что моя ОС Windows 64 битная соответственно 🙂 .
Установка Pscp
Мы установим скачанный 64-битный MSI-пакет putty в обычном стиле Windows Далее-> Далее.
Помощь и Настройки
Если нам нужно перечислить все доступные опции и справочную информацию, мы можем просто ввести команду pscp в командную строку или MSDOS, как показано ниже.
Мы начнем с простого примера, где мы будем загружать или получать один файл с удаленного сервера или системы.
Как указывалось ранее, мы будем использовать протокол SSH для подключения и передачи.
Мы просто предоставим имя пользователя удаленной системы, IP-адрес или имя хоста и файл с его абсолютным путем.
Мы также предоставим имя файла, который мы хотим сохранить локально.
> pscp ismail @ 192.168.142.144 : / home / ismail / pass pass . txtМы видим, что сначала мы подключимся к серверу, который нам нужен, чтобы утвердить ключ удаленного сервера.
Затем мы предоставляем пароль для пользователя ismail.
После успешной аутентификации передача файла успешно завершена.
В предыдущем примере мы загрузили или получили один файл с удаленного сервера.
Мы также можем загружать и получать несколько файлов из удаленной системы в соответствии с их путем или расширением.
В этом примере мы загрузим все gzip-файлы с расширением gz, которые находятся в /home/ismail.
. означает, что мы будем сохранять в текущий рабочий каталог.
Загрузить или поместить файл на удаленный сервер
Мы также можем загрузить или поместить данный файл на удаленный SSH-сервер с помощью команды pscp.
Сначала мы предоставим имя файла, а затем предоставим имя пользователя удаленной системы, IP-адрес или имя хоста и путь, куда мы хотим положить файл.
Загрузить несколько файлов на удаленный сервер
Мы также можем поместить несколько файлов на удаленный сервер с помощью команды pscp.
Мы предоставим имена файлов перед удаленным сервером, информацию о пользователе.
В этом примере мы скопируем локальные файлы pass.txt, config.sys на удаленный сервер.
Если мы хотим получить удаленные каталоги и скачать локальные, нам нужно использовать рекурсивную опцию -r.
Загрузить каталоги рекурсивно на удаленный сервер
Мы также можем отправлять или загружать локальные каталоги на удаленный сервер.
Мы снова будем использовать опцию -r.
Мы поместим каталог Downloads на удаленный сервер 192.168.142.144 и в папку /home/ismail/Downloads
Читайте также: