我一直在寻找一些持久的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
配置有什么问题?
任何帮助将不胜感激!
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] 删除。
我来说两句