Cron tidak menentukan PATH Anda, pastikan Anda selalu memanggil perintah dengan path lengkap, yang mungkin /usr/local/bin/brew update
Ini dianggap praktik yang baik untuk menjaga agar perintah yang tidak diinginkan/tak terduga berjalan. Jika seseorang meletakkan skrip jahat bernama 'brew' di tempat lain di jalur Anda, tetapi sebelum /usr/local/bin, skrip itu akan dipanggil.
Cronjob adalah opsi yang bagus, tetapi saya tidak ingin itu terjadi secara otomatis. Saya menemukan skrip yang akan memberi tahu Anda jika versi baru dari formula yang terinstal di Mac Anda tersedia.
Saya memperluas skrip untuk tidak menampilkan formula yang disematkan di pemberi notifikasi.
Saya memutuskan untuk menggunakan launchd-agent untuk cronjb, karena ini juga berjalan jika Mac dijalankan nanti. Cron-job hanya berjalan jika mac Anda sudah aktif pada saat itu.
Untuk perbandingan cronjob vs launchd, saya sarankan membaca ini.
Inilah konfigurasi saya yang berjalan setiap hari pada pukul 10 pagi dan 3 sore. Skrip yang dipanggil oleh agen terletak di /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>
Anda sekarang akan diberi tahu jika pembaruan baru tersedia. Hubungi brew upgrade
jika Anda merasa ketinggalan zaman, atau memasukkannya ke dalam skrip.