Как запустить задание cron на Mac?

12

Как я могу заставить мой Mac (с самой последней ОС) выполнять задачу автоматически один раз в день? Например, я бы хотел, чтобы он автоматически загружал копию этого учебника по алгебре с открытым исходным кодом раз в день. У меня есть ощущение, что какая-то комбинация wget и cron должна работать, но, прогуглив и прочитав документацию cron, я просто не смог заставить ее работать правильно.

Дэвид Цюрик-Браун
источник
2
Я предлагаю вам не использовать Crontab, а вместо этого научиться использовать Launchd, как уже предлагалось.
Мартин Маркончини,

Ответы:

9

Я думаю, что в OS X вы должны использовать launchctlдля "заданий cron".
Но в противном случае ваша задача должна быть легко сделать с помощью cronjob
sudo crontab -e
55 23 * * * wget http://www.math.columbia.edu/algebraic_geometry/stacks-git/book.pdf

Это должно работать каждый день в 23:55

Обновить

Вы должны указать выходное местоположение WGET с -O /path/to/file

deiga
источник
2
При использовании запуска программ , см apple.stackexchange.com/questions/3030/...
2
Вам не обязательно нужен sudo. Индивидуальные пользователи могут иметь свои собственные crontabs
Doug Harris
6

Демон cron может быть активирован простым:

sudo touch /private/etc/crontab

Затем желательно ввести полный путь к вашему / usr / local / bin / wget (или где бы он ни находился). Крон не знает о $ PATH вашего пользователя. Надеюсь, это поможет.


источник
5

Вы можете использовать Cronnix, который является бесплатным графическим интерфейсом для cron:

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

пис
источник
1
cronnix был официально снят с производства. Он может перестать работать правильно (или вообще не работать) в последних версиях macOS.
Андрей Абрамов
4

Если вы находите синтаксис командной строки (и т. Д.) Слишком запутанным / загадочным, вы можете обратиться к инструменту с графическим интерфейсом для просмотра / редактирования / создания этих заданий.

В прошлом я использовал Lingon , который теперь доступен и в Mac App Store. Мне не нужно использовать это очень часто, но это очень полезно, когда я делаю!

robsoft
источник
1

Более элегантным решением (чем cron) является использование уведомлений iCal + Applescript.

Сначала запустите AppleScript Editor (находится в / Application / Utilities) и вставьте следующий код:

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

Сохраните скрипт и выйдите из редактора applecript.

Откройте свой iCal и создайте новое событие на сегодня, установив желаемое время, выберите «повторить: каждый день» и в качестве будильника «Запустить сценарий» и выберите ваш скрипт.

Если вы хотите получать уведомления о каждой загрузке, вы можете добавить еще одну тревогу с «Сообщение со звуком», «в дату».

пис
источник
1

Я рекомендую макароны . Его преимущество заключается в том, что когда вы запускаете задание один раз в день, оно запускается, когда ваш компьютер включен, независимо от времени. Таким образом, вы не пропустите работу, потому что компьютер был выключен в указанное время.

Macaroni - это инструмент, который обеспечивает регулярное обслуживание Mac OS X, включая процесс восстановления прав Mac OS X, а также обслуживание в стиле Unix. Вы могли бы сделать это самостоятельно, но разве у вас нет более интересных вещей, связанных с вашим временем?

amorfis
источник