我正在使用时间机器将一些服务器备份到稀疏磁盘映像包中,并且我想要一个脚本来清理旧备份并在空间释放后重新调整映像大小。我相当确定数据受到保护,因为如果我通过右键单击删除旧备份,我必须输入密码才能删除它们。为了让我的脚本能够删除它们,我一直以 root 身份运行它。出于某种原因,它只是无法运行,并且它试图删除的每个文件我都得到
rm: /file/: Operation not permitted
这是我的脚本:
#!/bin/bash
for server in servername; do
/usr/bin/hdiutil attach -mountpoint /path/to/mountpoint /path/to/sparsebundle/$server.sparsebundle/;
/bin/sleep 10;
/usr/bin/find /path/to/mountpoint -type d -mtime +7 -exec /bin/rm -rf {} \;
/usr/bin/hdiutil unmount /path/to/mountpoint;
/bin/sleep 10;
/usr/bin/hdiutil compact /path/to/sparsebundle/$server.sparsebundle/;
done
exit;
我认为导致此问题的问题之一是它需要指定一个挂载点,因为默认挂载是 /Volumes/Time\ Machine\ Backups/ 这就是我创建挂载点的原因。我还认为它试图在安装后快速删除文件,但实际上还没有安装,这就是我添加睡眠的原因。我也尝试过使用-delete
find 而不是 的选项-exec
,但没有任何区别。
对此的任何帮助将不胜感激,因为我不知道为什么这不起作用。