Как перенести файлы из UNIX в Windows?

Как перенести файлы из UNIX в Windows?

Я хочу перенести файл с сервера UNIX на сервер Windows 2003, поэтому я загрузил его copsshна сервер Windows, а opensshна сервере UNIX он уже установлен.

Когда я выполняю следующую команду (на сервере UNIX):

scp -r /file_in_unix/ user@windows_hostname:\c:\\\

Появится следующий вывод (на экране сервера UNIX):

100% |***************************************************************|   562       00:00

Однако, когда я иду смотреть файл на Cдиске на сервере Windows, я ничего не нахожу. Почему файл не отображается?

решение1

Путь назначения выглядит неправильным — для большинства оболочек Unix обратная косая черта является экранирующим символом, а не маркером пути, поэтому я предполагаю, что файл попал в домашний каталог пользователя SSH со странным именем.

IIRC copssh основан на cygwin, поэтому вам, вероятно, нужно было запустить:

scp -r /file_in_unix/ user@windows_hostname:/cygdrive/c/

Альтернативой копированию на службу SSH на компьютере с Windows является использование графического клиента, напримерWinSCPна компьютере с Windows, чтобы войти в машину с Unix и загрузить файлы таким образом — хотя это не подходит, если вы пытаетесь автоматизировать процесс.

Если у вас есть привилегированный доступ на машине unix (т. е. вы являетесь или можете стать пользователем root через sudo или что-то подобное) и у вас установлена ​​соответствующая поддержка, вы можете просто скопировать файлы на общий ресурс Windows. Вы не говорите, какой Unix вы используете. Для Ubuntu и подобных систем проверка наличия поддержки и ее установка, если ее нет, может быть выполнена с помощью sudo aptitude install smbfs, вы можете смонтировать общий ресурс Windwos с помощью чего-то вроде sudo mount -tcifs //11.22.33.44//sharename /mnt/tmp -ousername=WindowsUserName(где 11.22.33.44 — это IP-адрес машины Windows, в зависимости от настроек вашей сети вы можете ссылаться на машину по имени, а не по адресу). После этого вы можете просто использовать основные инструменты управления файлами ( cp, mv, ...) для взаимодействия с этим общим ресурсом Windows и вызвать , umount /mnt/tmpкогда закончите. Возможно, вам захочется выбрать более осмысленное имя точки монтирования, чем /mnt/tmp. Конечно, вы можете оставить общий ресурс смонтированным, если передача данных должна быть автоматизирована/запланирована. Этот метод предполагает, что машина Unix может видеть общие файловые ресурсы машины Windows через любые межсетевые экраны, которые могут существовать между ними.

решение2

Вы также можете сделать это наоборот и вытащить файлы со стороны Windows вместо того, чтобы выталкивать их со стороны Unix. Посмотрите на такие инструменты, какWinSCPкоторый является графическим инструментом для передачи файлов SCP, предоставляя вам выбор между видом и поведением Windows Explorer или Norton Commander, оба из которых должны быть интуитивно понятны вам. После входа в систему вы можете перейти к интересующим файлам "способом Windows" и перетащить их туда, куда вам нужно.

решение3

ИспользоватьWinSCPИнструмент. Работает как по волшебству.

решение4

Почему бы не установить Samba на Unix-бокс? Тогда вы сможете сопоставлять диски между двумя системами. В качестве альтернативы я бы использовал psftp (из пакета putty) вместо командной строки scp, поскольку вы с ней не знакомы и, по-видимому, вам не нужно писать скрипт.

Связанный контент