Рубрики
Без рубрики

Как выполнить задание Cron на Mac с Crontab

Пролог Прежде чем написать приведенные ниже шаги, я бы порекомендовал установить последнюю версию Python W … с меткой Python, Cron, Mac, Crontab.

Прежде чем написать шаги ниже, я бы порекомендовал установить последнюю версию Python с Homebrew. Homebrew Это менеджер пакетов, как и PIP и Anaconda, и, честно говоря, я просто использую это в этом примере, потому что я часами пытался запустить простую работу Cron, но безрезультатно. У меня часто возникают ошибки о том, что я не могу открыть файл, который я хотел выполнить, или не нашел установленную версию Python. Я не буду вдаваться в свои ошибки в этом посте, но вы можете использовать любую другую установку Python, если хотите.

Я удалил свои версии Python 3.x, которые я установил (через Pip и Conda) и начал с нуля – удаление также было хлопотом. Итак, допустим, вы на своем Mac и имеете распределение Python по умолчанию, которое, я считаю, должно быть 2.7.10. Немногие разработчики обновляют модули в этой версии, поэтому, когда вы создаете проекты, лучше всего установить последнюю версию Python.

Я следовал РУКОВОДСТВО PREAL PYTHON Чтобы установить Python 3 через Homebrew (действительно несколько шагов на самом деле) Поэтому я предполагаю, что вы сделали то же самое в будущем в этом посте.

Откройте свою командную строку терминала на своем Mac и перейдите в домашний каталог, выполняя CD ~/

Для меня это Пользователи/Накул

Мы будем использовать встроенную функцию Crontab от Mac OS, чтобы написать наши задания Cron.

Тип crontab -e и нажмите Enter.

Это должно открыть пустой файл, именно здесь вы напишете свои задания Cron. Вы можете написать задание для запуска сценария оболочки или сценария Python в этом случае.

Тип : Q! Чтобы выйти из редактора.

Предполагая, что вы следовали руководству Homebrew, Double проверьте свой путь установки Python. Вы можете сделать это, набрав который Python3 в вашем терминале. Он должен отображать /usr/local/bin/python3 (Что является псевдонимом для реального места установки домашнего завода, но это нормально, мы не вдамся в это прямо сейчас). Вы будете включать этот путь в свой синтаксис работы Cron, в который мы приведем.

Прежде чем написать нашу работу Cron, у нас должен быть сценарий, который мы хотим запустить.

Я уже создал каталог /Документы/python/cron В моем домашнем каталоге и создал простой сценарий под названием cron_test.py

Примечание: этот скрипт Python должен быть исполняется, поэтому измените разрешения на него, чтобы разрешить это, я только что запустил chmod 777 cron_test.py

cron_test.py Сценарий просто создает каталог с текущей датой и временем в качестве имени.

Текст сценария следующим образом, если вы хотите использовать один и тот же сценарий:

#!/usr/bin/python3
from datetime import datetime
import os
sysDate = datetime.now()
# convert system date to string
curSysDate = (str(sysDate))
# parse the date only from the string
curDate = curSysDate[0:10]
# parse the hour only from the string
curHour = curSysDate[11:13]
# parse the minutes only from the string
curMin = curSysDate[14:16]
# concatenate hour and minute with underscore
curTime = curHour + '_' + curMin
# val for the folder name
folderName = curDate + '_' + curTime
# make a directory
os.mkdir(folderName)

Вы можете задаться вопросом, что эта первая строка #!/usr/bin/python3 является. Эта строка называется шебангом, и как задание Cron будет интерпретировать сценарий, поэтому в этом случае она будет запускать cron_test.py с помощью python (как будто вы выполнили Python cron_test.py в вашем терминале).

Итак, у нас установлен Python 3.x, у нас есть сценарий Python, теперь давайте напишем задание Cron, чтобы запустить это!

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

Синтаксис работы Cron выглядит следующим образом:

*/1 * * * * cd ~/documents/python/cron &&/usr/local/bin/python3 cron_test.py >> ~/documents/python/cron/cron.txt 2> & 1

Что означает вышеперечисленное? Давайте проанализируем это быстро.

*/1 * * * * Просто означает, что работа будет работать каждую минуту.

CD ~/Documents/Python/Cron &&/usr/local/bin/python3 Перейдите в каталог, в котором находится сценарий, который вы хотите выполнить, и определяет использование Python вместо Bash для выполнения (поскольку это сценарий Python, также помните, что мы добавили Шебанг в сценарий, я обнаружил, что он должен быть в Оба места для работы).

cron_test.py это имя файла сценария.

>> ~/документы/python/cron/cron.txt Определяет, где вывести журналы в случае выполнения задания есть какие -либо проблемы.

2> & 1 Просто отключает электронную почту, потому что по умолчанию задание Cron попытается отправить электронное письмо, но у нас нет указанного адреса.

В любом случае, этого должно быть достаточно, чтобы вы писали и тестировали свои сценарии, так что продолжайте!

Не стесняйтесь просматривать Интернет, чтобы узнать больше о Cron Jobs и Crontab. Я решил написать это для тех, кто имеет фундаментальное понимание программирования и хотел написать работу Cron как можно скорее.

Надеюсь, это помогло; Иди напишите несколько рабочих мест! Найди меня в Интернете:

Подключитесь на LinkedIn

Следуйте в Твиттере

Оригинал: “https://dev.to/nakulkurane/how-to-execute-a-cron-job-on-mac-with-crontab-1mc6”