我想将文件从 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 shell 来说,反斜杠是转义字符而不是路径标记,所以我猜测该文件已以奇怪的文件名放入 SSH 用户的主目录中。
IIRC copssh 基于 cygwin,因此您可能需要运行的是:
scp -r /file_in_unix/ user@windows_hostname:/cygdrive/c/
复制到 Windows 计算机上的 SSH 服务的替代方法是使用 GUI 客户端,例如温SCP在 Windows 机器上登录到 Unix 机器并以此方式提取文件 - 尽管如果您尝试自动化该过程,这并不合适。
如果您在 unix 计算机上有特权访问(即您是 root 用户,或者可以通过 sudo 或类似方式成为 root 用户)并安装了相关支持,那么您只需将文件复制到 Windows 共享即可。您不必说明您正在使用哪种 Unix。对于 Ubuntu 和类似系统,可以使用 检查是否存在支持并安装它(如果没有)sudo aptitude install smbfs
,您可以使用类似的方法挂载 Windwos 共享sudo mount -tcifs //11.22.33.44//sharename /mnt/tmp -ousername=WindowsUserName
(其中 11.22.33.44 是 Windows 计算机的 IP 地址,根据您的网络设置,您可能能够通过名称而不是地址来引用计算机)。完成后,您只需使用基本文件管理工具(cp
、、mv
...)与该 Windows 共享进行交互并umount /mnt/tmp
在完成后调用。您可能希望选择比 /mnt/tmp 更有意义的挂载点名称。当然,如果要自动/计划传输数据,您可以保持共享挂载。此方法假定 Unix 计算机可以通过它们之间可能存在的任何防火墙安排看到 Windows 计算机的文件共享。
答案2
您也可以反过来做,从 Windows 端拉取文件,而不是从 Unix 端推送。查看以下工具温SCP这是一个用于 SCP 文件传输的图形工具,让您可以选择 Windows 资源管理器或 Norton Commander 的外观和感觉,这两种方式对您来说都应该很直观。登录后,您可以“以 Windows 方式”导航到感兴趣的文件,并将它们拖放到您想要的任何位置。
答案3
使用温SCP工具。非常有效。
答案4
为什么不在 Unix 机器上安装 Samba?然后,您就可以在两个系统之间映射驱动器。或者,我会使用 psftp(来自 putty 套件)而不是命令行 scp,因为您不熟悉它,而且显然不需要编写脚本。