2009-06-03 34 views
17

是否可以指定一個時間範圍,以便rsync僅對最近更改的文件進行操作。如何使用rsync備份最近一段時間內更改的文件?

我正在編寫一個腳本來通過SSH備份最近添加的文件,rsync似乎是一個有效的解決方案。我的問題是,我的源代碼目錄中包含了大量舊文件,我沒有興趣備份。

我迄今爲止遇到的唯一解決方案是使用ctime進行查找以生成--files-from文件。 這有效,但我必須處理一些舊版本的rsync版本,不支持--files-from。 我正在考慮以同樣的方式生成--include-from模式,但很想找到更優雅的東西。

+0

在您下次初始化rsync之後,您會調用它,它只會傳輸新的或已修改的文件。這是rsync的目的。 – lothar 2009-06-03 15:24:05

+0

另一種選擇是重新組織目錄佈局,使得您不想備份的文件位於不同的路徑中,以便您可以將該路徑放到rsync的忽略列表中。 – lothar 2009-06-03 15:26:01

+0

我打算建議使用rsync的`-t`選項,但這並不完全符合要求 – Hasturkun 2009-06-03 15:28:22

回答

26

看起來你可以在參數rsync的指定shell命令(見Remote rsync executes arbitrary shell commands

所以我已經能夠成功地限制文件的rsync着眼於通過使用:

rsync -av remote_host:'$(find logs -type f -ctime -1)' local_dir 

這查找在最後一天更改的任何文件(-ctime -1),然後將它們rsyncs轉換爲local_dir。

我不確定此功能是否有設計,但我仍在深入研究文檔。

1

如何創建一個臨時目錄,符號鏈接或硬鏈接文件,然後rsyncing?

2

爲什麼不直接備份整個目錄一次,並利用rsync和rdiff及其堂兄提供的增量備份,您不會浪費磁盤空間備份到的位置,因爲它們會永遠不變。

備份整個事情比較簡單,而且錯誤的風險要低得多。試圖有選擇地備份一些文件而不是其他文件是不能備份所需內容而不實現的,然後在無法恢復關鍵文件時被燒燬。

否則,您應該重新組織源目錄,以便減少備份腳本中的「決策制定」。

1

我可以建議你放棄rsync並查看rdiff-backup嗎?

相關問題