Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.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
使用bash将plist写入sparsebundle_Bash_Plist_Timemachine - Fatal编程技术网

使用bash将plist写入sparsebundle

使用bash将plist写入sparsebundle,bash,plist,timemachine,Bash,Plist,Timemachine,我想写一个时间机器备份脚本。一切都在自行运转。sparsebundle已创建,但plist文件未保存到其中。我试着使用相同的代码并保存到其他地方,效果很好。你知道为什么它不会写进plist吗 #!/bin/bash #Set Time Machine Location loc="8437" echo "$loc \$loc done" #Find Hostname hostname=`hostname -s` echo "$hostname \$hostname done" #Find M

我想写一个时间机器备份脚本。一切都在自行运转。sparsebundle已创建,但plist文件未保存到其中。我试着使用相同的代码并保存到其他地方,效果很好。你知道为什么它不会写进plist吗

#!/bin/bash

#Set Time Machine Location
loc="8437"
echo "$loc \$loc done"

#Find Hostname
hostname=`hostname -s`
echo "$hostname \$hostname done"

#Find MAC Address
mac1=`ifconfig en0 | grep ether | tr -d ":" | awk {'print $2'}`
mac2=`ifconfig en0 | grep ether | awk {'print $2'}`
echo "$mac1 \$mac1 done"
echo "$mac2 \$mac2 done"

#Create a folder based on $loc
mkdir -p /Volumes/$loc
echo "mkdir $loc done"

#Mount Time Machine Share
mount_afp afp://timemachine:doctorwho@$loc.lbox.com/$loc /Volumes/$loc
echo "mounted share"

#Look for Time Machine Sparsebundle if it doesn't exist create it
if [[ ! -d /Volumes/$loc/"$hostname"_"$mac".sparsebundle ]]; then
    hdiutil create -size 300g -type SPARSEBUNDLE -fs HFS+J -volname "Time Machine Backups" /Volumes/$loc/"$hostname"_"$mac1"
fi
echo "ran hdiutil"

UUID=`system_profiler | grep 'Hardware UUID' | awk '{print $3}'`
echo "found $UUID \$UUID"

echo -n "Generating property list file with uuid $UUID and mac $mac2 ... "

echo '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.backupd.HostUUID</key>
<string>'$UUID'</string>
</dict>
</plist>' > /Volumes/$loc/$hostname"_"$mac1".sparsebundle"/com.apple.TimeMachine.MachineID.plist
open .

echo "done!"
#/bin/bash
#设置时间机器位置
loc=“8437”
回显“$loc\$loc done”
#查找主机名
hostname=`hostname-s`
回显“$hostname\$hostname done”
#查找MAC地址
mac1=`ifconfig en0 | grep ether | tr-d:“| awk{'print$2'}”`
mac2=`ifconfig en0 | grep ether | awk{'print$2'}`
回显“$mac1\$mac1完成”
回显“$mac2\$mac2完成”
#基于$loc创建文件夹
mkdir-p/卷/$loc
回显“mkdir$loc done”
#装载时间机器共享
法新社山afp://timemachine:doctorwho@$loc.lbox.com/$loc/Volumes/$loc
回音“挂载共享”
#寻找时间机器Sparsebundle如果它不存在创建它
如果[[!-d/Volumes/$loc/“$hostname”“$mac.sparsebundle]];然后
hdiutil create-size 300g-type SPARSEBUNDLE-fs HFS+J-volname“Time Machine Backup”/Volumes/$loc/“$hostname”\uu“$mac1”
fi
echo“运行hdiutil”
UUID=`system_profiler | grep'Hardware UUID'| awk'{print$3}'`
echo“找到$UUID\$UUID”
echo-n“正在生成uuid$uuid和mac$mac2的属性列表文件…”
回声'
com.apple.backupd.HostUUID
“$UUID”
“>/Volumes/$loc/$hostname”“$mac1.sparsebundle”/com.apple.TimeMachine.MachineID.plist
打开
回声“完成!”

您有权限写入该目录吗?还是覆盖现有的.plist文件?是否必须先装入sparsebundle?其他导游都不这么做。他们直接给它写信。混乱。我试图手动将plist移动到sparsebundle,它显示权限已指定sparseimage是使用错误的权限创建的。