使用 WinSCP 或类似工具将文件从 Linux 复制到 Windows

使用 WinSCP 或类似工具将文件从 Linux 复制到 Windows

我可以使用 WinSCP GUI 将文件夹从本地 Linux 服务器复制到 Windows 服务器进行备份,并使用“仅更新文件/文件夹”选项(类似于 rsync)。

我想使用 WinSCP 的命令行实用程序或类似的东西,我可以通过 Windows 任务计划程序安排每晚从 Linux 服务器获取文件夹(加上子文件夹/文件)并将其存储在 Windows 服务器上。

我查看了 WinSCP 文档,但我害怕尝试任何命令,而不知道要运行哪些命令等,因为我最不想发生的事情是意外地将文件写入错误的方向。

任何人都可以告诉我 WinSCP 命令(或类似的实用程序),我可以安排执行以下操作:

将文件夹/子文件夹/文件(仅限新的或更新的)从 Linux 服务器上的“/shared/svnrepos”复制到“\WINSERVER\BACKUP”

答案1

我认为文档解释得很清楚:http://winscp.net/eng/docs/scriptcommand_synchronize

您想使用 synchronize 命令而不是 get 命令。

当第一个参数为 local 时,远程目录的更改将应用​​于本地目录。当第一个参数为 remote 时,本地目录的更改将应用​​于远程目录。

如您所见,如果使用 syncronize local,损坏服务器文件的风险非常小,因为它将获取远程目录并将其应用到您的本地目录。

我将创建一个脚本文件,然后添加一个计划任务来调用 WinScp:

WinScp.exe /script="d:\SvnBackupScript.txt"

然后在脚本文件中添加如下内容:

同步本地 d:\svnBackup /shared/svnrepos

确保您已按照文档完成配置和连接设置。

您始终可以在 cosole 模式下运行它并测试您的命令:

WinScp.exe /控制台

然后只需在脚本中输入所需的命令

答案2

也许是 rclone (https://rclone.org/commands/rclone_sync/) 值得一试。用 Go 编写,有多个二进制文件(包括 Windows),并且允许使用多种协议(包括 SSH)将目录从 Linux 同步到 Windows。

您必须首先对其进行配置(即定义远程主机别名、协议和凭据),然后从命令行执行:

rclone sync remoteserveralias:/the/dir/path localpath

警告:由于sync删除目标中的文件(它会尝试拥有两个相同的副本 - 远程与本地),更安全的方法是使用将copy文件从源差异复制到目标而不进行任何删除的命令。

https://rclone.org/commands/rclone_copy/

相关内容