Cron nemá vaši PATH definovanou, ujistěte se, že vždy voláte příkazy s úplnou cestou, která je pravděpodobně /usr/local/bin/brew update
To je považováno za dobrý postup, který zabrání spuštění nechtěných/neočekávaných příkazů. Pokud by vám někdo do cesty vložil škodlivý skript s názvem 'brew', ale před /usr/local/bin, zavolal by se místo toho.
Cronjob je dobrá volba, ale nechtěl jsem, aby se to stalo automaticky. Našel jsem skript, který vás upozorní, pokud je k dispozici nová verze vzorce nainstalovaného na vašem Macu.
Rozšířil jsem skript tak, aby v oznamovači nezobrazoval připnuté vzorce.
Rozhodl jsem se použít launchd-agenta pro cronjb, protože ten se spustí i při pozdějším spuštění Macu. Cron-jobs se spustí, pokud je váš mac již v tu dobu zapnutý.
Pro srovnání cronjob vs launchd doporučuji přečíst toto.
Zde je moje konfigurace, která běží každý den v 10:00 a 15:00. Skript, volaný agentem, se nachází na /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>
Nyní budete upozorněni, pokud je k dispozici nová aktualizace. Volejte brew upgrade
pokud se cítíte zastaralí, nebo to zahrňte do skriptu.