2013-05-13 48 views
1

我在OSX上遇到以下問題,儘管我猜這可能同樣在bash下提交。我有幾個加密的便攜式驅動器,用於同步異地數據存儲或作爲移動數據存儲等。我使用包含--del和includes文件的幾個選項使用rsync保持這些更新。 這是目前做的非常靜態,即在OSX上的rsyncing外部驅動器之前進行檢查

rsync <options> --include-file=... /Volumes /Volumes/PortableData 

,其中包括文件會讀像

+ /Abc/ 
+ /Def/ 
... 
- * 

我想做到以下幾點:

  1. 檢查正確的驅動器安裝並找到它的安裝點
  2. 檢查所有+ /....../條目是否安裝在/卷
  3. rsync的

要達到1我正打算在驅動器中的變量UUID存儲在我的個人資料,這樣我可以搜索並找到相關的安裝點。 .bashrc中的一個bash函數,它接受一個uuid並返回一個掛載點。我已經看到了一些實現此目的的網頁條目。

2我有點卡住了。在包含文件中僅檢索包含+和頂級文件夾名稱的條目,然後迭代檢查它們是否已安裝並可讀的最佳方式是什麼?再次,我正在考慮嘗試將這些邏輯放在可重用的函數中。

有沒有更好的方法來實現這一目標?我曾經想過CCC,但是像在bash中使用rsync編寫腳本的想法一樣,因爲這是瞭解命令行的好方法。

回答

1

rsync可以調用一個包含排除列表的文件。 我會寫一個腳本,轉儲目錄到包含文件中的NOT +和頂級文件夾名稱的文本文件

您將希望排除如下所示:(如果有幫助,可以使用通配符)

dirtoexlude1 
dirtoexlude2 
dirtoexlude 

然後,只要將一個rsync引導到該排除文件。 您的rsync命令將會是這樣的:

rsync -aP --exclude-from=rsyncexclusion.txt 

一個是遞歸的本質(以揮手)和P是冗長。

祝你好運。

+0

您可以通過提供語法示例來改善您的答案。 – amphetamachine 2014-08-21 18:22:27

+0

我更新了我的答案以包含語法。 – PhysicalChemist 2014-09-01 16:10:12

相關問題