2010-08-13 71 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或者只是用它在後臺運行。

相關問題