Ian*_*hao 12 linux macos bash cron crontab
我一直在摒弃一些持久的Linux技术来帮助自动化我的日常工作.cron如果我可以用它来检查我系统上的一些软件包的更新,我发现它非常强大.
例如,我想Homebrew在晚上11点更新我的日常生活.我做的是,sudo crontab -u user -e我crontab在Vim 打开了.我将以下命令放入其中,进行更新homebrew并向我发送电子邮件.
这是代码:
MAILTO=myemail@foo.com
* 23 * * * brew update
Run Code Online (Sandbox Code Playgroud)
我保存它等待魔法发生.它说,而不是在我收到的电子邮件中排除这个命令/bin/sh: brew : command not found
但是当我键入/bin/sh终端打开sh并输入brew update它会更新Homebrew.
我的crontab配置出了什么问题?
任何帮助将不胜感激!
Don*_*van 20
Cron没有定义PATH,请确保始终使用完整路径调用命令,这可能是 /usr/local/bin/brew update
这被认为是防止意外/意外命令运行的良好做法.如果有人在你的路径中的某个地方放置一个名为'brew'的恶意脚本,但在/ usr/local/bin之前,它会被调用.
我有同样的想法,而cronjob是一个不错的选择.但是,我发现了一个脚本,如果Mac上安装了新版本的公式,它将通知您.我不希望它自动发生.
http://chrisstreeter.com/archive/2012/08/homebrew-package-update-notifications-on-mountain-lion.html
我将脚本扩展为不在通知程序中显示固定公式:https://gist.github.com/SimonSimCity/13832e2e03597a6be793
在编写cron作业时,我决定选择一个launchd-agent,因为如果以后启动Mac,这也会运行.如果你的mac当时已经打开,那么Cron-jobs就会运行.
对于cronjob vs launchd的一些帮助,我建议阅读这个或类似的介绍:http://alvinalexander.com/mac-os-x/mac-osx-startup-crontab-launchd-jobs
这是我的配置.正如您所见,它每天上午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>
Run Code Online (Sandbox Code Playgroud)
恭喜!现在,如果有新的更新,您将收到通知.brew upgrade如果您觉得过时,只需打电话,或者也可以将其包含在脚本中;)
| 归档时间: |
|
| 查看次数: |
4632 次 |
| 最近记录: |