在 Windows 文件共享上複製文件
我有一個客戶端應用程序,它修改文件共享上的數據文件。基本上每次應用程序執行時,我都想將數據文件備份到共享上的備份文件夾中。
不幸的是,客戶端和網路共享之間的連結並不總是很好。人們通過 VPN 連接,執行正常文件複製可能需要很長時間。
我認為網路共享之間文件複製的標準程序是將其從第一個網路共享複製到本地電腦,然後從那裡複製到目標共享,即使兩個共享相同,對嗎?有什麼方法可以啟動要在伺服器本身上執行的文件複製?
它必須使用 SMB 客戶端可用的標準命令,因為我無法控製文件伺服器。
執行一個定期呼叫 robocopy 的計劃任務。查看
/MON:n
或/MOT:n
開關。Repeated Copy Options /MON:n : MONitor source; run again when more than n changes seen. /MOT:m : MOnitor source; run again in m minutes Time, if changed.
每當執行計劃任務時,如果文件發生更改,伺服器將簡單地複製文件。但是,如果配置文件損壞,您將只是複制損壞的數據。迷人的。
最好在 robocopy 之後執行文件重命名並在文件名中包含日期。這樣你就有了文件的歷史記錄,以防萬一你發現運動鞋出了問題。我相信以下內容會按日期重命名您的文件:
ren myfile.foo myfile%date:~4,2%-%date:~7,2%-%date:~10%.foo
如果 Robocopy 複製文件沒有問題,則返回 1。如果它不複製任何內容,則為零。我將把批處理文件的邏輯留給讀者作為練習(主要是因為我不擅長批處理文件)。
編輯
如果您無權訪問伺服器,則只需在 PC 上的計劃任務中執行 Robocopy 腳本即可檢查文件共享是否對文件進行了修改,然後在檢測到更改時將其複制。由於客戶端和伺服器之間的連接不可靠,請查看
/Z
Robocopy 的開關。/Z : Copy files in restartable mode (survive network glitch).
如果您想通過客戶端 PC 的觸發器以某種方式在伺服器的 CPU 本身上執行備份……您需要訪問伺服器,此時更好的選擇 IMO 是使用 Robocopy此編輯上方的概念。