4

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

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

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

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

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

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

5 ответов5

9

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

IIRC Copssh основан на Cygwin, так что вам, вероятно, нужно было запустить:

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

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

Если у вас есть привилегированный доступ на компьютере с Unix (то есть вы являетесь пользователем root или можете стать с помощью 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

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

2

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

1

Я просто сделал это с сервера Linux на сервер Windows и проверил это.

scp test.txt someguy @ someserver:/tmp/

/tmp находится на диске C Windows Server. Это не имело ничего общего с C, поэтому я бросил его, и это сработало.

-1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .