GNU/Linux >> Linux Esercitazione >  >> Linux

come aggiornare homebrew con Cron su Mac os

Cron non ha il tuo PERCORSO definito, assicurati di chiamare sempre i comandi con il percorso completo, che probabilmente è /usr/local/bin/brew update

Questa è considerata una buona pratica per impedire l'esecuzione di comandi indesiderati/imprevisti. Se qualcuno mettesse uno script dannoso chiamato "brew" da qualche altra parte nel tuo percorso, ma prima di /usr/local/bin, verrebbe invece chiamato.


Un cronjob è una buona opzione, ma non volevo che accadesse automaticamente. Ho trovato uno script che ti avviserà se è disponibile una nuova versione di una formula installata sul tuo Mac.

Ho esteso lo script per non mostrare le formule bloccate nel notificatore.

Ho deciso di utilizzare un launchd-agent per cronjb, perché funziona anche se il Mac viene avviato in un secondo momento. I cron-job vengono eseguiti solo se il tuo mac è già acceso in quel momento.

Per un confronto tra cronjob e launchd, consiglio di leggere questo.

Ecco la mia configurazione che viene eseguita tutti i giorni alle 10:00 e alle 15:00. Lo script, chiamato dall'agente, si trova in /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>

Verrai ora avvisato se è disponibile un nuovo aggiornamento. Chiama brew upgrade se ti senti obsoleto, o includilo nello script.


Linux
  1. In che modo Linux gestisce più separatori di percorsi consecutivi (/home////nomeutente///file)?

  2. Come utilizzare Ssh-copy-id con il tunnel Ssh a più hop?

  3. Come generare una richiesta di firma del certificato (CSR) con OpenSSL?

  4. Come creare un dizionario Python

  5. come decrittografare il file ecryptfs con chiave privata anziché passphrase

Come utilizzare l'autenticazione a chiave pubblica con SSH

Come generare una chiave SSH in Windows 10

Come gestire le password Linux con il comando pass

Come abilitare Backspace in Firefox:per tornare alla pagina Web precedente con il tasto Backspace

Come risolvere una chiave scaduta (EXPKEYSIG) con Apt

Come utilizzare una chiave SSH con utenti non root