2015-05-23 32 views
0

我目前正在管理一組正在回收的Mac,因此我們需要找出一種方法來自動化用戶文件夾的一次備份(不包括像Shared或root這樣的多餘帳戶)在系統上使用rsync進行網絡共享。爲備份腳本捕獲dscl命令的輸出

我想使用下面的命令來捕獲每個用戶的結果的輸出:

$ dscl /Local/Default -list /Users UniqueID | awk '$2 >= 500 { print $1; }' 

輸出示例:

John 
Bob 

我道歉,如果這不是最優雅的溶液或者解決這個問題的方法(隨我學習bash)。但是對John和Bob(或者某些n結果)的逐行結果進行解析的最好方法是什麼?給它們分配一個結果爲\Users\$RESULT的變量並將這些內容複製到\Volumes\Backup\$RESULT+DATESTAMP

最終目標是基本上是從拉動以前dscl命令的結果創建的兩個\Users\John & \Users\Bob備份到\Volumes\Backup\John-5/5/15 & \Volumes\Backup\Bob-5/5/15

感謝任何幫助!

+0

爲什麼不只是複製/ Users中的目錄而不是擺弄dscl? –

+0

我們有各種各樣的電腦進來與許多不同的帳戶,並且可以在1到10多個用戶之間的任何地方重大變化。我曾想過單獨做這件事,因爲這會簡化事情,但會消耗太多時間。這就是爲什麼我們想通過一次性單擊解決方案來自動化每個用戶的所有備份的一種方式(設置它並忘記它的心態)。 – Tan

回答

0

如果我正確地理解了你,下面的東西應該會訣竅。

for name in $(dscl /Local/Default -list /Users UniqueID | awk '$2 >= 500 { print $1; }') 
do 
    cp -r /Users/$name /Volumes/Backup/$name-$(date +%d.%m.%y) 
done 

我假設你用\來分裂目錄,不是嗎?此外,由於顯而易見的原因,我從/切換到。在日期格式。

+0

啊,是的,抓住了這個愚蠢的錯誤。非常感謝! – Tan

+0

如果能解決您的問題,請您接受答案嗎? –