Mac OSX Catalina 和 Rsync:无法打开日志文件(名称):只读文件系统

Mac OSX Catalina 和 Rsync:无法打开日志文件(名称):只读文件系统

好的,所以我通常在 stackoverflow 上,并且我承认,当涉及到更多系统管理内容时,我有点不熟悉。

在我更新到 catalina 之前,我有一个自己编写的 rsync 脚本,运行良好。基本上,我编写了一个 bash 脚本,它会将列入白名单的硬盘复制到我大楼后面的 NAS 中。

自更新至 Catalina 以来

我收到以下错误rsync: failed to open log-file nas-log: Read-only file system (30)

所以这听起来像是权限错误,但有几件事我不明白。该脚本是从 launchcontrol 运行的,本质上是 launchctl?它被视为“全局守护进程”,所以我真的不知道是我的用户在运行这个脚本,还是 root 在尝试,我甚至不知道如何查看。

为了让这个脚本再次工作,我该如何修复权限以避免此错误。我已经授予 sh 填充磁盘访问权限(根据 catalina 的更新要求)

作为参考,这是我的 bash 脚本所做的

if [ -d /Volumes/Seville ]
then
  echo "Detected Seville... Beginning Rsync"
  rsync -az /Volumes/Seville rsync://[email protected]:873/rsync --log-file=nas-log --out-format="%t %f %b %n"
  echo "Rsync Complete ...Mailing Logs For Details"
  ruby /Users/$nasDir/Library/Scripts/mail.rb [email protected] Seville
  rm nas-log
fi
...#more drives

因此,它基本上会创建一个日志,通过电子邮件将其发送给用户,然后删除该日志,以便在下次运行脚本时保持最新状态。我对此很满意,我不需要将这些日志长期存储在任何地方。提前感谢您,我非常感谢您的帮助!

答案1

Catalina 的系统卷以只读方式挂载(根据[1]),您的脚本可能正在某个目录(在/?)上创建该文件,而该目录现在以只读方式挂载。

我不确定 Catalina 在哪个目录上运行 rsync 命令(您可以回显 $PWD),但考虑到它无法nas-log在那里创建文件,解决方案似乎很简单:使用完整路径。您可以使用/Users/$nasDir/nas-log,或者/tmp/nas-log

相关内容