我知道 robocopy 命令只适用于现有驱动器,而不适用于远程服务器,所以如果我想使用 robocopy 命令从远程服务器运行定期文件备份,我必须将其映射到网络驱动器。
到目前为止我的脚本是这样的:
rem # Map the drive
net use R: \\server\path-to-file /USER:username
rem # Now use robocopy
robocopy.exe R:\ C:\local\backup\destination
rem # Disconnect the mapped drive
net use R: /delete
在我将远程服务器映射到本地网络驱动器的第一行中,有没有办法让我使用私钥位置而不是密码来指定登录名?这是我连接到远程服务器的唯一方法。
任何想法都将不胜感激!:-)
答案1
您提到您通过 WinSCP 使用 SFTP 连接到服务器,但不幸的是 Windows 本身不支持该功能(您只能使用 SMB 或 WebDAV\\server
或net use
)。
这也意味着你也无法使用robocopy
它。(除非你安装类似Dokan SSHFS,但我担心该项目有点过时了。)
但是,如果你需要做的只是下载一个完整的目录,WinSCP 的自动化(脚本)可以轻松做到这一点,使用synchronize
函数。编写类似如下的脚本:
option batch abort
option confirm off
open mysession
synchronize local -mirror -delete C:\local\backup\destination /path/to/source
exit