我正在寻找一种方法将我的文件从Web服务器(Ubuntu 14)同步(任务)到本地服务器(Windows Server)。 Web服务器创建本地服务器所需的小文件。 Web服务器位于DMZ中,可通过SSH访问。只有本地服务器才能访问Web服务器上的文件夹。它尝试使用像WinSCP这样的程序,但我无法设置“获取”-Job。
有没有办法在Windows服务器上使用SSH而不是每隔几秒登录一次?或者有更好的解决方案吗?在未来,Web服务是可能的,但目前我需要一个快速的解决方案。
答案 0 :(得分:0)
您需要安排定期频繁的工作,连接并下载更改。
或者您需要持续运行流程,以保持连接打开并定期监视更改。
这不是一个更好的解决方案(仍然可以快速,轻松地实施)。
使用WinSCP .NET assembly实施的连续流程示例:
// Setup session options
SessionOptions sessionOptions = new SessionOptions {
Protocol = Protocol.Sftp,
HostName = "example.com",
UserName = "user",
Password = "mypassword",
SshHostKeyFingerprint = "ssh-rsa 2048 xxxxxxxxxxx...="
};
using (Session session = new Session())
{
// Connect
session.Open(sessionOptions);
while (true)
{
// Download changes
session.Synchronize(
SynchronizationMode.Local, localPath, remotePath, false).Check();
// Wait 10 seconds
Thread.Sleep(10000);
}
}
如果连接中断,您将需要添加更好的错误处理和重新连接。
如果您不想将其实现为(C#)应用程序,则可以使用PowerShell脚本。将上面的代码转换为PowerShell非常简单。
见
https://winscp.net/eng/docs/library_powershell
https://winscp.net/eng/docs/library_session_synchronizedirectories#powershell