2010-11-23 165 views
2

目標是rsync(或使用任何其他提供所需結果的工具)僅在日期後創建或修改的文件。僅rsync日期和時間後創建或修改的文件

我成功地在OS X 10.6.5上使用這個命令: find . -newermt "2010-11-23 16:52:50" -type f -exec rsync -vuptn '{}' ../rsync_test/ ';'我不認爲-newermt雖然在OS OS上工作。

這個命令的缺點是,它曾經每個文件發現並沒有似乎是做了正確的方式運行rsync的。我試圖改變過去的;+所以它等待整個文件列表,但剎車(我曾嘗試"+"\+等方式來逃避)。

背景:我試圖在遠程位置備份我的文件。這些文件是原始格式和其他格式的大量照片(照片每天工作大約30GB),rsync雖然由於上傳帶寬小(ADSL吸引),網絡將花費無法使用的時間。所以這個想法是在遠程位置擁有大量的磁盤空間,並且每週在小型外置硬盤上傳輸新的/修改過的文件。 rsync可以很容易地用於在遠程位置添加新的/修改過的文件。爲此,我需要在一週內同步外部硬盤驅動器上的新/修改過的文件,這樣我就可以在遠離一個星期的文件的遠程位置或在外部硬盤驅動器上爲每個文件保存新的/修改過的文件自上次運輸以來。

我打算讓這個命令來運行,每10分鐘(的cron)與它運行的最後一次的日期和時間。

你能解決我的命令嗎? 或者你有更好的解決方案嗎?

回答

3

我在Server Fault再次發佈了問題,並得到了我需要的答案。

--files-from=FILE選項的確可以與-使用,因此它需要標準輸入(其中可以使用的find命令,然後用管道輸送到rsync的)。有關更多詳細信息,請查看服務器故障答案。

0

我不知道你打算使用什麼平臺,但如果你想這樣做在PowerShell中,你可以使用下面的命令。

get-childitem -Recurse | where-object {$_.LastWriteTime -gt "2010/11/23 00:00:00"} 

爲了讓rsync的做你想要什麼,它看起來像你將不得不生成文件列表(從您的命令或我的命令),然後使用--files-從= FILE選項在rsync(所以這將是兩個命令)

+0

感謝您的回答。該平臺是OS X,但我發現的答案應該適用於任何類似unix的系統。使用--files-from選項是正確的方式,就像你在我的答案中看到的一樣。 – Yanik 2010-11-24 09:22:43

0

Rsync不應該刪除這些文件默認情況下,所以你可以rsync較小的硬盤驅動器到較大的驅動器和rsync將複製和更新任何文件,但它不會刪除缺少文件。如果它似乎仍然刪除,您可以嘗試--max-delete=0選項。也許這將起作用。

相關問題