捕获dscl命令的输出以备份脚本

时间:2015-05-23 07:09:16

标签: macos bash shell scripting backup

我目前正在管理一系列正在回收的Mac,因此我们需要找到一种方法来自动化系统上用户文件夹的一次性备份(不包括任何多余的帐户,如共享或root)使用rsync的网络共享。

我想使用以下命令捕获每个用户的结果输出:

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

示例输出:

John
Bob

如果这不是最优雅的解决方案或解决这个问题的方法,我道歉(我去的时候学习bash)。但是,解析John和Bob(或某些n结果)的逐行结果的最佳方法是,为它们分配一个变量,其结果为\Users\$RESULT,并将这些内容复制到{{1 }}?

最终,目标是基本上创建\Volumes\Backup\$RESULT+DATESTAMP和&的备份。 \Users\John\Users\Bob& \Volumes\Backup\John-5/5/15来拉取前一个\Volumes\Backup\Bob-5/5/15命令的结果。

感谢任何帮助!

1 个答案:

答案 0 :(得分: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

我假设您使用\来意外拆分目录,不是吗?此外,由于显而易见的原因,我从/切换到。以日期格式。