有没有什么方法可以使用诸如winscp
.
我需要通过在 Windows 中执行一些命令来将文件从 UNIX 复制到 Windows。我搜索了一下,发现这些工具可以做到这一点。
ftp
sftp
scp
pscp
winscp console.
编辑:我可以使用一些东西吗,pscp
因为我刚刚发现ftp
我的服务器中没有启用该功能。
请建议一种方法,我需要在 Windows 中运行任何脚本/命令,仅用于复制 unix 文件。
编辑2winscp
:在控制台中收到此错误sftp
:
winscp> get abc.sh c:\
abc.sh | 0 KiB | 0.0 KiB/s | binary | 0%
Can't create file 'c:\abc.sh'.
System Error. Code: 2.
The system cannot find the file specified
(A)bort, (R)etry, (S)kip, Ski(p) all:
答案1
我会WinSCP
为此使用脚本 这里您有一些关于如何执行此操作的好文档。示例脚本:
# Automatically abort script on errors
option batch abort
# Disable overwrite confirmations that conflict with the previous
option confirm off
# Connect using a password
# open sftp://user:[email protected] -hostkey="ssh-rsa 1024 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
# Connect
open sftp://[email protected] -hostkey="ssh-rsa 1024 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
# Change remote directory
cd /home/user
# Force binary mode transfer
option transfer binary
# Download file to the local directory d:\
get examplefile.txt d:\
# Disconnect
close
# Connect as a different user
open [email protected]
# Change the remote directory
cd /home/user2
# Upload the file to current working directory
put d:\examplefile.txt
# Disconnect
close
# Exit WinSCP
exit
然后将其保存example.txt
并使用以下命令:
winscp.exe /console /script=example.txt
答案2
您说您想要自动化该过程,但同时您说您想要运行一些命令。其他答案包含一些命令,但如果您想要自动化,请查看一致也许值得尝试一下。它不仅允许单向同步,还提供了一种在不同计算机上保持 2 个目录同步的方法。
答案3
有多种解决方案...其中一种方法会影响您处理该问题的方式,即从何处开始。
从 Unix 设备,您应该能够挂载 Windows 文件共享并像保持本地文件同步一样处理它。 (带有 Windows 不喜欢的字符的文件名可能会使事情变得复杂......)
您还可以共享驱动器并在 Windows 上使用 NFS 挂载它(它位于 XP 上的 Unix 服务中,并且是 Vista 和更高版本中的可选组件(可能需要特定版本,也可以使用一些替代方案))。 (如果您不想在 Windows 上安装 NFS 客户端,Samba 也可以用于 Windows 文件共享)
设置完成后,您可以cp
像处理本地文件一样使用 Unison 和 Rsync(或对于简单情况)(如果您从 Unix 端执行)或 SyncToy 或类似工具(对于 Windows 端)等工具。
scp(以及 PuTTY 捆绑的等效项pscp
可能更容易保护,但需要设置 SSH 密钥才能自动工作)。curl
还支持 SCP 和 SFTP(主要用于获取文件),并且可能对其他几个选项也有用。
答案4
您可以使用Samba
as file sharing
。当您设置它时,您可以通过shell script
和使其自动化crontab
。