Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 为备份脚本捕获dscl命令的输出_Macos_Bash_Shell_Scripting_Backup - Fatal编程技术网

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

Macos 为备份脚本捕获dscl命令的输出,macos,bash,shell,scripting,backup,Macos,Bash,Shell,Scripting,Backup,我目前正在管理一组正在回收的Mac电脑,因此我们需要找到一种方法,使用rsync自动将系统上的用户文件夹(不包括任何多余的帐户,如共享或root)一次性备份到网络共享 我想使用以下命令捕获每个用户的结果输出: $ dscl /Local/Default -list /Users UniqueID | awk '$2 >= 500 { print $1; }' 示例输出: John Bob 如果这不是解决此问题的最优雅的解决方案或方法(边学习bash),我深表歉意。但是,解析John和B

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

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

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

John
Bob
如果这不是解决此问题的最优雅的解决方案或方法(边学习bash),我深表歉意。但是,解析John和Bob的逐行结果(或某些n-results)的最佳方法是什么,为它们分配一个变量,并将结果赋给
\Users\$RESULT
,然后将这些内容复制到
\Volumes\Backup\$RESULT+DATESTAMP

最终,目标是基本上创建一个备份,将
\Users\John
\Users\Bob
备份到
\Volumes\backup\John-5/5/15
\Volumes\backup\Bob-5/5/15
,从上一个
dscl
命令的结果中提取


谢谢你的帮助

如果我没弄错的话,下面这样的方法应该可以奏效

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

我想你过去常常无意中分割目录,不是吗?此外,出于明显的原因,我从/切换到。日期格式。

为什么不直接复制/Users中的目录,而不是摆弄dscl?我们有各种各样的计算机,它们有许多不同的帐户,用户数量可能在1到10个以上之间变化很大。我曾经想过单独做,因为这样会简化事情,但会消耗太多的时间。这就是为什么我们想找到一种方法,通过一次单击解决方案(一种“设置它,忘记它”的心态)来自动化每个用户的所有备份。