2010-09-23 34 views
0

我需要備份進程正在寫入磁盤的一些大文件。該進程永久運行,偶爾會轉儲需要通過網絡移動的大文件。擁有這個過程本身並不是一種選擇,因爲這個過程會在用戶進行文件轉儲時鎖定用戶。在Windows下安全文件備份的腳本

所以,這個運行在Windows機器下,並作爲主要的Linux用戶,我不能完全肯定如何做到這一點?

linux下我就簡單的文件夾中使用cron作業(我知道將匹配輸出文件的glob),然後檢查lsof,確保文件未被寫入,這樣我就不會嘗試複製部分完整的文件。數據完整性至關重要,所以我通常會在複製之前和之後讀取文件。

所以我想我的問題是 - 在Windows下如何做這種東西?我覺得自己從一開始就受到了限制 - 我可以使用python,但我無法模擬lsof,也無法執行任務計劃。

我試着看着「處理」 - 但它需要在執行時管理privelidges,這也不是一個選項。我無法以管理員身份運行備份過程,因此必須以用戶專用權運行。

謝謝..

編輯:我才意識到我可以保持蟒蛇實例上運行,與睡眠,所以任務調度是沒有問題的:)

回答

0

對於更換的cron,您可以使用「任務調度程序「,每隔幾分鐘(或特定時間)啓動腳本。

對於這個問題的疑問,我們在這裏討論:How can I determine whether a specific file is open in Windows?

+0

唯一的建議是句柄。其他人是互動的,因此沒有幫助。歡呼的任務調度提示 – SomeoneLikeMe 2010-09-23 18:35:24

+0

或者你可以去更「哈克」的方式:檢查文件大小在過去60秒左右沒有改變....不是很好,但應該做的工作,如果你不有任何其他解決方案。 或要求進程啓動其他程序來傳輸文件。 – 2010-09-23 19:27:06

+0

是的,我已經結束了md5的文件...等待60秒,然後再次做和比較散列 – SomeoneLikeMe 2010-09-23 19:40:35