【问题标题】:Is there a way to add to OS X's install.log from within a shell script?有没有办法从 shell 脚本中添加到 OS X 的 install.log 中?
【发布时间】:2013-02-26 19:57:07
【问题描述】:

有没有办法从 shell 脚本中向 OS X 的 /var/log/install.log 文件添加一个条目?

该方法最好不需要 root 访问权限,因为我认为我不会拥有它。

我遇到的问题是我正在通过 Javascript 从 OS X 安装程序包中执行一个 shell 脚本作为 installation-check(Apple 的 Distribution Definition XML Schema 第 15 页)步骤的一部分System.run() 命令(Apple 的 Installer Javascript Reference 的 p30),但我看不到该 shell 脚本的任何输出。

我知道 shell 脚本正在执行,因为当我在脚本中使用“logger”命令时,我的日志文本会出现在 /var/log/system.log 中。但是为了全面了解正在发生的事情,我需要手动将它与 /var/log/install.log 合并,这是安装程序的一般输出以及我所做的任何 Javascript 日志记录的结​​束位置起来。

任何帮助将不胜感激。我尝试使用“logger”命令的 -f 标志来使用 /var/log/install.log,例如

logger -f /var/log/install.log sometext

...但没有骰子; sometext 仍会添加到 /var/log/system.log。

【问题讨论】:

  • 您找到解决方案了吗?我处于一个非常相似的场景(需要记录的 bash/pyhthon 前/后构建脚本)。 Installer Man page(8) 确实谈到了“LOG_INSTALL 工具”,但我无法理解它是什么,以及我的脚本是否可以使用它。
  • @MottiShneor 我没有,但我仍然很好奇..如果你有什么发现,请告诉我。抱歉这么久才回复,今天才看到你的评论。我可能会再看看,因为它已经 3 年多了。

标签: macos logging installation


【解决方案1】:

阅读 bash 脚本。 您可以像这样在文件中添加一行

echo "My line here" >> /var/log/system.log

如果出现Permission denied 错误,则需要root 访问权限。

【讨论】:

  • 感谢您的回复 Chiel92。不幸的是,这需要 root 访问权限(“logger”命令解决了这个问题,但似乎只允许添加到 /var/log/system.log,我需要能够添加到 /var/log/install.log)。
  • 如果只需要知道这些文件的内容,就不能直接把内容放到第三个文件里吗?
  • 我可以,我只是在寻找一种巧妙的方法来避免手动合并这两个文件。
  • 如果您对 install.log 或 system.log 没有写入权限,则无法对其进行写入,因此您应该将这两个文件写入您有权访问的第三个文件。只需运行cat /var/log/system.log > myfile.log; cat /var/log/install.log >> myfile.log。注意第二个命令中的双 >>。
  • 您好 Chiel92,感谢您的回复。让我解释一下用例。这是为了调试客户机器上可能出现的安装程序问题。当安装程序执行其正常操作时,其中的日志记录数据将进入 /var/log/install.log。但是,当安装程序启动一个 shell 脚本作为帮助程序时,它的输出无处可去。我希望有一些方法可以从所说的辅助 shell 脚本写入 /var/log/install.log。是的,我可以写入另一个文件并稍后将其合并,但最佳情况下我正在寻找一种避免这种情况的方法。看来不可能。
【解决方案2】:

好的。很久过去了,我发现了以下内容。

在正常情况下,安装前和安装后脚本(我的是 python 和 bash)写入标准输出的任何内容都将由安装程序守护程序记录到 /var/log/install.log。我尝试了各种工具来创建我的安装程序包,他们通常会这样做。

但是,在我自己的部署安装程序中,出于某种原因,只有写入 stderr 的内容才会记录到 /var/log/install.log - 所以您可能也想尝试一下。

【讨论】:

  • 嘿,很酷,感谢您再次调查。我会试一试,然后在这里报告进展情况
  • 它可以在我们的产品中使用...在您测试之后,如果您觉得值得,请投票!
  • 这行得通! MacOS 大苏尔
【解决方案3】:

有点晚了,但遇到了同样的问题,并且能够使用 loggerLOG_INSTALLinstall.log /em> 设施:

logger -p 'install.error' "My error message"

【讨论】:

  • 这行得通。日志包括运行logger 命令的用户名以及PID
【解决方案4】:

这本身不是一个答案,但也许是一个提示?安装程序手册页提到了“LOG_INSTALL 工具”,其输出是所需的 /var/log/install.log

但是这个“设施”是什么,它在哪里可用 - 我找不到。我真的需要将我的前/后脚本失败和特定场景写入该日志。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-06
    相关资源
    最近更新 更多