Как настроить задание cron в OS X для запуска команды curl в определенное время каждый день?

20

У меня есть команда CURL, которую я хочу запускать каждый день, скажем, в 3 часа ночи, но я не уверен, как это настроить, и руководства все странные.

Предположим, у меня большой опыт работы с терминалом / bash, но я никогда раньше не устанавливал cron.

Может ли задание cron разбудить мой компьютер, даже если он спит и крышка закрыта (macbook pro), просто для того, чтобы выполнить эту команду curl и затем снова перевести ее в спящий режим?

Как мне установить это так или иначе?

marcamillion
источник

Ответы:

22

Начните с запуска команды:

crontab -e

Это откроет crontab для вашего пользователя в текстовом редакторе. Cron использует специальные обозначения для запланированных заданий. В приведенном ниже формате показаны поля для пользовательской записи в crontab (которые должны быть разделены вкладками).

min  hour  day_of_month  month  day_of_week  command

Чтобы запланировать выполнение команды curl на 3 часа ночи, вы можете вставить строку:

0  3  *  *  *  curl args...

Обратите внимание, что минуты и часы соответствуют 3 часам ночи (примечание: cron использует 24-часовой формат времени, без часов или вечера). Следующие звездочки означают каждый день месяца, каждый месяц, каждый день недели.

Cron не сможет разбудить ваш компьютер из сна, но вы можете найти этот пост полезным crontab, чтобы разбудить osx из сна

diametralpitch
источник
1
Когда я это crontab -eвижу, я вижу это в моем терминале:, $ crontab -e crontab: no changes made to crontabа затем он открывает мой текстовый редактор с файлом crontab.some-random-stringиз папки /tmp. Как только я отредактирую это и сохраню, в моем терминале ничего не происходит. Если я делаю crontab -l, работа, которую я только что вошел, не появляется. Затем, если я делаю crontab -eснова, он открывает еще один пробел crontab.some-random-string. Я также протестировал первый сохраненный файл crontab, установив время в 2 минуты с момента его сохранения, и cron никогда не запускался. Что может происходить?
marcamillion
Какой текстовый редактор открывается при запуске 'crontab -e'?
диаметральная
Мой по умолчанию один atom. Это то, что запускается, когда я открываю что-либо для редактирования в моем терминале. Это то , что у меня в ~/.bash_profile, export EDITOR='open -a "/Applications/Atom.app"'.
marcamillion
Хм, если вы запускаете atom из командной строки самостоятельно, ждет ли он выхода из atom, прежде чем запрашивать другую команду (если нет, вы можете попробовать другой текстовый редактор).
Адам Лученброерс
@AdamLuchjenbroers Я не уверен, что полностью понимаю ваш вопрос. Я использую атом для всего моего редактирования кода. Поэтому, если я хочу редактировать какой-либо файл, я просто делаю это atom .внутри каталога или atom <filepath>.
marcamillion
0

если вы хотите сделать это с помощью графического интерфейса, я могу порекомендовать вам CronniX из roaringapps https://roaringapps.com/app/cronnix

konqui
источник
Спасибо за этот совет .... но я думаю, что я бы предпочел сделать это вручную в командной строке или с помощью текстового редактора, чтобы узнать :)
marcamillion