Wie führe ich einen Cron-Job auf einem Mac aus?

13

Wie kann ich meinen Mac (mit dem neuesten Betriebssystem) dazu bringen, einmal am Tag automatisch eine Aufgabe auszuführen? Zum Beispiel möchte ich, dass es einmal täglich automatisch eine Kopie dieses Open-Source-Lehrbuchs für algebraische Geometrie herunterlädt . Ich habe das Gefühl, dass eine Kombination aus Wget und Cron funktionieren sollte, aber nachdem ich gegoogelt und die Cron-Dokumentation gelesen hatte, konnte ich es einfach nicht richtig zum Laufen bringen.

David Zureick-Brown
quelle
2
Ich schlage vor, Sie verwenden Crontab nicht und lernen stattdessen, Launchd wie bereits vorgeschlagen zu verwenden.
Martin Marconcini

Antworten:

9

Ich denke, in OS X sollten Sie launchctlfür "Cron-Jobs" verwenden.
Ansonsten sollte es einfach sein, Ihre Aufgabe mit einem Cronjob zu erledigen
sudo crontab -e
55 23 * * * wget http://www.math.columbia.edu/algebraic_geometry/stacks-git/book.pdf

Dies sollte jeden Tag um 23:55 Uhr laufen

Aktualisieren

Sie sollten den Ausgabeort von WGET mit angeben -O /path/to/file

Deiga
quelle
2
Wenn Sie launchd verwenden, lesen
2
Du brauchst nicht unbedingt Sudo. Einzelne Benutzer können ihre eigenen Crontabs haben
Doug Harris
6

Der Cron-Daemon kann auf folgende Weise aktiviert werden:

sudo touch /private/etc/crontab

Dann ist es ratsam, den vollständigen Pfad Ihres / usr / local / bin / wget (oder wo immer es lebt) einzugeben. Cron kennt den $ PATH Ihres Benutzers nicht. Ich hoffe es hilft.


quelle
5

Sie können Cronnix verwenden, eine kostenlose grafische Oberfläche für cron:

http://www.macupdate.com/app/mac/7486/cronnix/

nuc
quelle
1
cronnix wurde stromaufwärts offiziell eingestellt. In neueren Versionen von macOS funktioniert es möglicherweise nicht mehr richtig (oder überhaupt nicht).
Andrii Abramov
4

Wenn Sie die Befehlszeilensyntax (usw.) als zu verwirrend / geheimnisvoll empfinden, können Sie das GUI-Tool zum Anzeigen / Bearbeiten / Erstellen dieser Jobs aufrufen.

In der Vergangenheit habe ich Lingon verwendet , das jetzt auch im Mac App Store verfügbar ist. Ich muss es nicht sehr oft benutzen, aber es ist sehr nützlich, wenn ich es tue!

Robsoft
quelle
1

Eine elegantere Lösung (als cron) ist die Verwendung von iCal-Benachrichtigungen + Applescript.

Starten Sie zunächst den AppleScript-Editor (unter / Application / Utilities) und fügen Sie den folgenden Code ein:

set the destination_file to ("~/Downloads/book.pdf")

set the contentLink to "http://www.math.columbia.edu/algebraic_geometry/stacks-git/book.pdf"

tell application "URL Access Scripting"
    download contentLink to destination_file replacing yes
end tell

Speichern Sie das Skript und beenden Sie den Applescript-Editor.

Öffnen Sie Ihren iCal und erstellen Sie ein neues Ereignis für heute. Stellen Sie die gewünschte Zeit ein, wählen Sie "Wiederholen: Jeden Tag" und als Alarm "Skript ausführen" und wählen Sie Ihr Applescript aus.

Wenn Sie bei jedem Download benachrichtigt werden möchten, können Sie einen weiteren Alarm mit der Meldung "Nachricht mit Ton" und "Datum" hinzufügen.

nuc
quelle
1

Ich empfehle Makkaroni . Der Vorteil besteht darin, dass ein Job, der einmal am Tag ausgeführt werden soll, unabhängig von der Uhrzeit immer ausgeführt wird, wenn Ihr Computer eingeschaltet ist. Sie werden also keinen Job verpassen, da der Computer zum angegebenen Zeitpunkt ausgeschaltet war.

Macaroni ist ein Tool, das die regelmäßige Wartung von Mac OS X übernimmt, einschließlich der Reparaturrechte für Mac OS X sowie der Wartung im Unix-Stil. Sie könnten dies selbst tun, aber haben Sie nicht interessantere Dinge mit Ihrer Zeit zu tun?

Amorfis
quelle