2010-08-13 60 views
3

尝试使用robocopy将文件镜像到另一台服务器作为SQL作业失败尝试失败(不要问)。C#将目录复制到另一台服务器

作业必须每隔15分钟运行一次并作为SQL作业运行以复制所有事务日志和备份文件,这样做会导致作业失败,并在SQL中报告,然后通过MOM进行检查。作业不能只复制整个目录,因为它的大小只有50GB,它只需要镜像directroy,换句话说就是摆脱源目录中不存在的文件并复制新文件。

有人建议c#是最好的方法(对我来说它是一个很好的学习曲线)。但我的C#知识是非常小的。

对不起我fogot提及我们是在一个受限制的网络和Robocopy是唯一的选项ragerding应用程序。 FTP也被禁止。

帮助

感谢

+0

问题是什么? – Migol 2010-08-13 10:01:45

回答

0

这听起来像使用FTP传输文件将是一个不错的选择。

这里有上传文件使用FtpWebRequest C#教程:http://www.vcskicks.com/csharp_ftp_upload.php

+0

我不认为FTP是复制50GB目录的最佳选择。如果他不想每次需要复制文件,他都需要自己编写同步逻辑 – 2010-08-13 10:07:55

+1

他要求提供C#解决方案,这正是我想到的。你能用C#想一个更好的选择吗?我不知道C#是否是最好的解决方案,但我觉得我至少回答了他的问题。 – 2010-08-13 10:10:03

1

你可以自己写程序或安装Microsoft TyncToy工具这个工具允许你创建的文件夹,对需要进行同步。第一次使用GUI设置文件夹对,但后缀可以从命令行调用工具

2

如果我理解你的话,你需要将一个目录复制到某个服务器,但是,因为目录是50Gb在大小上,你只需要移动特定的文件。

如果是这样的话,那么我建议你看看FileSystemWatcher。它基本上“侦听”对给定目录中的文件所做的任何更改,并且可以使用这些操作来知道对哪个文件执行了哪些操作(创建,编辑,删除)。

1

作为非C#选项 - 我不确定为什么这会有所帮助 - 还有rsync。我没有在Windows上使用它,但我已经在Linux上使用它来做这种事情。它可以作为守护进程/客户端来运行,以在机器之间分配工作。但它似乎只能通过cygwin在Windows上使用,而不能在本机API上使用。

0

对不起我fogot提及我们是在一个受限制的网络和Robocopy是唯一的选项ragerding应用程序。 FTP也被禁止。

+0

您应该将其添加为您的问题下方的评论,或者将其编辑为问题 - 在那里找到更容易!谢谢。 – Rup 2010-08-13 10:34:26

+0

...但可以在C#中编写自己的应用程序吗? – Rup 2010-08-13 10:35:14

+0

编辑到第一篇文章完成,是我信任:) – andy 2010-08-13 10:41:52

0

对于非编程类型的选项,来自Microsoft的SyncToy可以很好地保持文件目录的同步。如何处理更改(更新/删除)有不同的文件夹选项。我将它与Task Scheduler结合使用,在白天的预定时间运行。此外,我还在桌面上保留了一个快捷方式,以便在必要时运行“超出时间表”。

编辑:

如果UI的SyncToy是不是你的东西,你可以使用底层框架(Microsoft同步框架)http://msdn.microsoft.com/en-us/sync/bb887623.aspx开发自己的UI或者只是用它在后台运行。

相关问题