如何在Mac OS上使用Cron更新自制软件

赵恩恩:

我一直在寻找一些持久的Linux技术来帮助实现我的日常工作自动化。cron如果可以使用它检查系统中某些软件包的更新,我发现它非常强大。

例如,我想Homebrew每天晚上11点更新我所做的就是在Vim sudo crontab -u user -e开设的crontab我在其中添加了以下命令,以进行更新homebrew并向我发送电子邮件。

这是代码:

[email protected]
* 23 * * * brew update

我保存它以等待魔术发生。在收到的电子邮件中,它没有执行该命令,而是说/bin/sh: brew : command not found

但是当我输入/bin/sh终端以打开sh并输入时brew update,将更新Homebrew

我的crontab配置有什么问题?

任何帮助将不胜感激!

SimonSimCity:

cronjob是一个不错的选择,但是我不希望它自动发生。我找到了一个脚本脚本会在您的Mac上安装了新版本的公式时通知您。

我将脚本扩展为不在通知程序中显示固定的公式。

我决定为cronjb使用launchd-agent,因为如果稍后启动Mac,它也会运行。如果您的Mac当时已经打开,则Cron-jobs会运行。

对于的cronjob的VS launchd的比较,我建议你阅读

这是我的配置,每天上午10点和下午3点运行。代理调用的脚本位于/usr/local/bin/homebrew-update-notifier

<?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>EnableGlobbing</key>
    <false/>
    <key>Label</key>
    <string>homebrew.simonsimcity.update-notifier</string>
    <key>ProgramArguments</key>
    <array>
        <string>/bin/bash</string>
        <string>/usr/local/bin/homebrew-update-notifier</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>StandardErrorPath</key>
    <string>/tmp/homebrew.simonsimcity.update-notifier.err</string>
    <key>StandardOutPath</key>
    <string>/tmp/homebrew.simonsimcity.update-notifier.out</string>
    <key>StartCalendarInterval</key>
    <array>
        <dict>
            <key>Hour</key>
            <integer>10</integer>
            <key>Minute</key>
            <integer>0</integer>
        </dict>
        <dict>
            <key>Hour</key>
            <integer>15</integer>
            <key>Minute</key>
            <integer>0</integer>
        </dict>
    </array>
</dict>
</plist>

现在将通知您是否有新的更新。brew upgrade如果感觉过时,请致电,或将其包含在脚本中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章