假设我在 Windows 服务器上有一个公共目录,例如:\\servername\location\common
。白天,任何用户都可以来此向该 Windows 目录添加/删除文件。
我该如何设置夜间计划(总是晚上 9 点)来将该目录中的所有文件传输到预定义路径(不会改变)的 Unix 服务器?
我不太担心隐藏密码,因为每个人都知道。
- 是否有一些著名的脚本可以做到这一点?
- 如果没有的话,有谁能给我一些关于如何实现这一点的建议吗?
我对.bat 文件和 shell 有一些了解。
答案1
这可以使用 Windows 任务和 WinSCP 来完成。
首先,安装 WinSCPhttp://winscp.net/eng/index.php 安装完成后,单击新建,然后输入服务器的信息。如果您使用密钥,请找到密钥文件,否则请输入密码。单击保存。在出现的对话框中,如果您不使用密钥文件,请务必选中“保存密码”。记住您选择的配置文件名称。
接下来创建一个文件,config.txt
在与安装 WinSCP 相同的位置在文件中插入以下内容,将 ** 替换为您特定内容。
option batch on
option confirm off
open *NAME OF PROFILE* synchronize local -mirror *Local path: \\servername\location\common* *Remote Path*
exit
按 Windows Key + R
然后输入taskschd.msc /s
并单击“确定”。在打开的窗口右侧,选择“Create Task...
输入名称:” Folder Auto Upload
(或任何适合您的名称)
单击Triggers
选项卡,然后单击New
选择Daily
单选按钮将列出一个时间,将时间调整为您希望上传的时间。单击OK
单击Actions
选项卡,New
在程序/脚本字段中输入 WinSCP.exe 的位置(或浏览到安装它的位置并选择它。),在添加参数(可选):字段中输入,/console /script=config.txt
然后单击再次OK
单击OK
,您就全部设置好了。
答案2
我要么使用“AlwaySync”之类的免费软件通过 SFTP/SSH 发送文件。要么在远程系统上设置 ISCSI/SMB 共享,然后以此方式备份。要么安装 Cygwin,并设置 rsync 以在 cron 上备份到 Linux 服务器。
这些仅仅是让您的大脑活跃起来的概念!
答案3
您可以安装 putty,并使用 pscp 执行计划任务。如果安全性不是首要考虑因素,您可以使用 Windows 上的内置 ftp 客户端执行相同操作。
就我而言,我使用 putty 和 pscpgow unix 工具的分布
基本文件传输将是整个目录,类似于'pscp -pw password -r“path/to/source/”[电子邮件保护]:/path/to/destination/' - 这种方法存在一些问题,例如密码以纯文本形式显示
使用 pagent 会是一个更好的方法 -你必须进行设置,并且我相信用 -agent 替换 -pw 密码。
如果你想走 rsync 路线增量复制可能是一个不错的选择,它确实进行了计划的增量备份
答案4
您可以在 Windows 上共享文件夹和文件。在 Linux 上安装 Samba,挂载文件夹并在 Linux 上运行 cron 作业以将文件传输到需要的地方