Ich habe einige langlebige Linux-Techniker gefunden, um meine tägliche Arbeit zu automatisieren. Ich fand cron
sehr mächtig, wenn ich damit die Updates einiger Pakete auf meinem System überprüfen kann.
Zum Beispiel möchte ich mein Homebrew
jeden Tag um 23 Uhr aktualisieren. Was ich getan habe ist, dass ich mit sudo crontab -u user -e
in Vim crontab
geöffnet habe. Und ich habe folgende Befehle eingefügt, um Updates für homebrew
zu machen und mir eine E-Mail zu schicken.
Hier ist der Code:
%Vor% und ich speichere es, um auf Magie zu warten. Anstatt diesen Befehl auszuführen, heißt es in der E-Mail, die ich erhalten habe: /bin/sh: brew : command not found
Aber wenn ich /bin/sh
im Terminal eintippe, um sh
zu öffnen und brew update
einzutippen, wird die Homebrew
aktualisiert.
Was habe ich mit meiner crontab
Konfiguration falsch gemacht?
Jede Hilfe wird geschätzt!
Ich hatte die gleiche Idee und ein Cronjob ist eine gute Option. Ich habe jedoch ein Skript gefunden, das Sie benachrichtigt, wenn eine neue Version einer auf Ihrem Mac installierten Formel verfügbar ist. Ich wollte nicht, dass es automatisch passiert.
Ich habe das Skript so erweitert, dass im Notifier keine gepinnten Formeln angezeigt werden: Ссылка
Wenn es darum geht, den Cron-Job zu schreiben, habe ich mich für einen launchd-Agenten entschieden, weil dieser auch ausgeführt wird, wenn Mac später gestartet wird. Cron-Jobs laufen nur, wenn Ihr Mac zu diesem Zeitpunkt bereits aktiv ist.
Für einige Hilfe rund um Cronjob vs Launchd, empfehle ich, diese oder eine ähnliche Einführung zu lesen: Ссылка
Hier ist meine Konfiguration. Es läuft, wie Sie sehen können, jeden Tag um 10 und 15 Uhr. Das Skript, das vom Agenten aufgerufen wird, befindet sich unter /usr/local/bin/homebrew-update-notifier
.
Glückwunsch! Sie werden nun benachrichtigt, wenn ein neues Update verfügbar ist. Rufen Sie einfach brew upgrade
an, wenn Sie sich veraltet fühlen, oder fügen Sie sie auch in das Skript ein;)
In Cron ist Ihr PATH nicht definiert. Stellen Sie sicher, dass Sie immer Befehle mit dem vollständigen Pfad aufrufen, was wahrscheinlich /usr/local/bin/brew update
Dies wird als bewährte Methode angesehen, um die Ausführung unerwünschter / unerwarteter Befehle zu verhindern. Wenn jemand ein böswilliges Skript namens 'brauen' an einer anderen Stelle in Ihrem Pfad platziert, aber vor / usr / local / bin, wird es stattdessen aufgerufen.
Wahrscheinlich stimmt etwas nicht mit Ihrer bash
-Konfiguration. Stelle sicher, dass du PATH
so gesetzt hast, dass sie das Verzeichnis enthält, in dem brew
ist. Du kannst es in deinem ~/.profile
setzen, aber stell sicher, dass es auch in deinem ~/.bashrc
gesetzt ist. Alternativ können Sie es in Ihrer crontab
auf die gleiche Weise festlegen, wie Sie MAILTO