Что такое crontab mac os

Пишем первое задание для cron

Сегодня я хотел бы рассказать нашим читателям о базовых принципах работы с мощным планировщиком для Mac OS X под названием cron и смоделировать учебную ситуацию — прямо как у спасателей или военных.

Итак, представим, что у вас есть определенное приложение, которое должно работать постоянно, но по каким-то неизвестным причинам время от времени аварийно завершает свою работу. Вот тут нам на помощь и приходит незаметный инструментарий операционной системы: командная строка, скрипты и фоновые службы (демоны).

Допустим, таким приложением будет torrent-клиент Transmission, хотя на самом деле, вы можете прописать в нижеуказанном скрипте абсолютно любое приложение. Только обязательно убедитесь, что в его названии вы правильно написали все строчные и прописные буквы, символы или пробелы, а добавлять «.app» совершенно необязательно.

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

ps xc|fgrep «$» > /dev/null && exit 0
open -a «$»
exit 0

Вначале мы проверяем, запущено ли наше приложение: если да, то выходим, а если нет — запускаем его. Просто, не правда ли? Набранный скрипт следует сохранить в файл (Ctrl+O) и завершить работу nano (Ctrl+X).

Я решил назвать скрипт run-transmission.sh и сохранить его в домашний каталог

/ , хотя вы можете выбрать совершенно другое имя и любую папку на компьютере — главное, не забыть, как вы его назвали и куда положили 🙂

Теперь необходимо наш файл сделать исполняемым при помощи вот такой команды:

chmod +x /Users/Deavy/run-transmission.sh

Осталось уведомить cron о том, что мы хотим запускать наш скрипт по графику. Для этого требуется создать файл

/.crontab (если он уже существует — отредактировать) при помощи того же nano и добавить в него такие строки:

Первые пять параметров (звездочки), разделенные табуляторами или пробелами, обозначают временной промежуток: минуты, часы, дни, месяцы или дни недели. В данном случае наш скрипт будет запускаться каждые 5 минут и проверять статус торрент-клиента. При редактировании можно задать свою частоту запуска и, что более важно, правильно ввести путь к сценарию и его название.

Последний шаг — указать демону на наш созданный файл вот такой командой:

Вы без проблем увидите добавленное задание при помощи команды crontab -l . Таким образом, можно убедиться, что все параметры указаны правильно и подлежат исполнению. Кроме этого, спустя 5 минут после «аварийного отключения», Transmission вновь запустится и продолжит выполнять свои непосредственные обязанности.

Если вы больше не нуждаетесь в услугах этого планировщика, то можете воспользоваться командой crontab -r . Она очистит все задания.

Теперь вы знаете, как управлять работой cron, а остальное зависит только от ваших потребностей и фантазии! 🙂

Источник

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

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

Я думаю, что в 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

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

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

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

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

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

Читайте также:  Как добавить разрешение экрана windows 10 radeon

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

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

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

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

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

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

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

Источник

Crontab на Mac OSX

Я создал файл / etc / crontab на Mac OS X, который запускает несколько простых команд. Я хотел бы использовать crontab для повторения заявления в моем терминале, выхода из ОС (как если бы я должен был навести мою мышь на команду Logout), и я пытаюсь проверить ее, запустив инструкцию echo каждые две минуты. Вот что я имею до сих пор:

В этот момент я использовал crontab /etc/crontab чтобы убедиться, что мой пользователь указывает на файл crontab (что он делает) и смог подтвердить его, набрав crontab -l .. Что мне нужно сделать, чтобы сделать это так что он перекликается с моим терминалом и действительно ли он выходит из операционной системы в 12 часов дня каждый день?

Если фактическое намерение состоит в том, чтобы принудительно выйти из системы активного пользователя системы на 1300 каждый день, попробуйте это в crontab root пользователя:

Если вы не хотите отображать для пользователя диалоговое окно подтверждения, вы можете использовать:

Записи таблицы cron запущены. Они не работают на вашем активном терминале; они работают самостоятельно. Если на вашем хосте работает локальный почтовый демон, вы можете увидеть выходные задания cron, которые имеют выход (например, задания echo ), в сообщениях электронной почты, отправленных локальной учетной записью локальным почтовым демоном.

Использование cron в OS X было сильно обескуражено какое-то время в пользу их «лучшего» варианта, называемого launchd . Существует множество руководств о том, как запускать задания с помощью launchd но только для того, чтобы вы начали здесь.

Источник

Cron на MacOS

Сегодня я хотел бы рассказать нашим читателям о базовых принципах работы с мощным планировщиком для Mac OS X под названием cron и смоделировать учебную ситуацию — прямо как у спасателей или военных.

Итак, представим, что у вас есть определенное приложение, которое должно работать постоянно, но по каким-то неизвестным причинам время от времени аварийно завершает свою работу. Вот тут нам на помощь и приходит незаметный инструментарий операционной системы: командная строка, скрипты и фоновые службы (демоны).

Допустим, таким приложением будет torrent-клиент Transmission, хотя на самом деле, вы можете прописать в нижеуказанном скрипте абсолютно любое приложение. Только обязательно убедитесь, что в его названии вы правильно написали все строчные и прописные буквы, символы или пробелы, а добавлять «.app» совершенно необязательно.

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

#Удаление мусора
rm -rf /Users/admin/Downloads/*
rm -f

Я решил назвать скрипт xak.sh и сохранить его в домашний каталог

Теперь необходимо наш файл сделать исполняемым при помощи вот такой команды:

chmod +x /Users/admin/xak.sh

Осталось уведомить cron о том, что мы хотим запускать наш скрипт по графику. Для этого требуется создать файл

/.crontab (если он уже существует — отредактировать) при помощи того же nano и добавить в него такие строки:

Первые пять параметров (звездочки), разделенные табуляторами или пробелами, обозначают временной промежуток: минуты, часы, дни, месяцы или дни недели. В данном случае наш скрипт будет запускаться каждые 6 часов

Последний шаг — указать демону на наш созданный файл вот такой командой:

/.crontab

Вы без проблем увидите добавленное задание при помощи команды crontab -l. Таким образом, можно убедиться, что все параметры указаны правильно и подлежат исполнению.
Если вы больше не нуждаетесь в услугах этого планировщика, то можете воспользоваться командой crontab -r. Она очистит все задания.

Читайте также:  Windows keyboard shortcut command

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

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Источник

Cron: что это такое и как его правильно использовать

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

Что такое Cron и crontab?

Если в двух словах, то Cron – это планировщик задач. Если подробнее, то это утилита, позволяющая выполнять скрипты на сервере в назначенное время с заранее определенной периодичностью.

К примеру, у вас есть скрипт, который собирает какие-либо статистические данные каждый день в 6 часов вечера. Такие скрипты называют «заданиями», а их логика описывается в специальных файлах под названием сrontab.

crontab – это таблица с расписанием запуска скриптов и программ, оформленная в специальном формате, который умеет считывать компьютер. Для каждого пользователя системы создается отдельный crontab-файл со своим расписанием. Эта встроенная в Linux утилита доступна на низком уровне в каждом дистрибутиве.

В Linux-дистрибутивах с поддержкой systemd Cron считается устаревшим решением, его заменили утилитой systemd.timer. Ее предназначение и функциональность не отличается, но фактически частота использования Cron все еще выше.

Для чего обычно используют Cron?

Обычно Cron заставляют повторять вполне очевидные задачи в духе регулярного создания резервных копий данных. Но это не все.

  1. Некоторые пользователи с помощью планировщика корректируют системное время. На многих компьютерах оно настраивается через Network Time Protocol. А так как этот протокол настраивает только время ОС, время, установленное для «железа», может отличаться. Cron позволяют регулярно корректировать время, установленное для аппаратного обеспечения, в соответствии со временем ОС.
  2. Еще один популярный сценарий – создание оповещений, появляющихся каждое утро и рассказывающих о состоянии компьютера. В эти сообщения может входить любая полезная для пользователя информация.
  3. Cron иногда работает даже без ведома пользователя. Эту утилиту используют такие сервисы, как Logwatch, logrotate и Rootkit Hunter. Повторяющиеся задачи они настраивают, как и пользователи, через Cron.

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

Базовые принципы работы с Cron и crontab (через панель управления)

Многие хостинг-провайдеры предлагают отдельное меню в панели управления для настройки расписания запланированного выполнения скриптов.

Разберем подобное меню на примере панели управления Timeweb. Чтобы создать новую задачу, необходимо открыть раздел Crontab в боковой панели веб-интерфейса, кликнуть по кнопке «Добавить новую задачу» и указать параметры повторяющейся команды.​ Поговорим подробнее о параметрах.

  • Сначала надо придумать для команды название (подойдет любой текст без спецсимволов).
  • Затем указываем исполнителя (нужно выбрать, будет ли планировщик работать с исполняемым файлом, PHP-скриптом или HTTP-запросом).
  • В графе «Путь до файла» вводим абсолютный путь до скрипта, запуск которого хотим запланировать. К примеру: /home/u/myusername/mytestscript.php. При желании можно воспользоваться встроенным файловым менеджером и выбрать заранее предзагруженный на сервер скрипт.
  • После этого указываем периодичность выполнения выбранного скрипта или исполняемого файла (в списке доступны предустановки в духе «Каждую минуту» или «Раз в день», но можно выбрать и пункт «Продвинутые настройки»).
  • Кликаем по кнопке «Создать задачу».

На этом все. Скрипт запланирован и будет регулярно повторяться.

Базовые принципы работы с Cron и crontab (через SSH-протокол)

Планировать задачи через панель управления удобно, но не всегда возможно. Не все хостинг-провайдеры предлагают такие функциональные веб-интерфейсы. В этом случае придется воспользоваться командной строкой, подключившись к серверу по протоколу Secure Shell.

Для работы с планировщиком в системе есть ряд команд, помогающих решать основные задачи:

  • crontab -e – открывает конфигурационный файл (поговорим о нем чуть подробнее в разделе с первичной настройкой).
  • crontab -l – показывает список задач из конфигурационного файла (все, что было запланировано).
  • crontab -r – удаляет конфигурационный файл вместе со всеми запланированными задачами.
  • сrontab -v – показывает, когда в последний раз открывался конфигурационный файл.

Чтобы запланировать задачи, используя командную строку, необходимо выполнить базовую настройку Cron, проверить, не установлены ли ограничения, и заполнить расписание задач в соответствии с синтаксисом сrontab.

Первичная настройка Cron

Как мы уже выяснили ранее, планировщик черпает параметры для выполнения своих задач из crontab-файлов (таблиц с расписанием). У каждого пользователя, включая root, должен быть свой crontab-файл. По умолчанию он не существуют, поэтому придется создать его вручную.

Для этого существует команда crontab -e. Она автоматически генерирует таблицу в директории /var/spool/cron.

Вновь созданный файл будет пустым текстовым полем. Необходимо добавлять в него все параметры самостоятельно с нуля, опираясь на синтаксис сrontab (более подробно поговорим о нем ниже). После ввода параметров нужно сохранить параметры редактора, нажав на клавишу F2, а затем покинуть конфигурационный файл, нажав на клавишу F10. При введении корректных параметров в терминале отобразится строка crontab: installing new crontab.

Читайте также:  Диспетчер задач windows как открыть без клавиатуры

Опытные разработчики и системные администраторы не рекомендуют использовать для редактирования расписания текстовые редакторы в духе Nano, Emacs или Vi. Команды crontab позволяют не только внести изменения в таблицу запланированных задач, но и перезапустить фоновый процесс crond, отвечающий за работу утилиты после сохранения настроек.

Ограничения Cron

У Cron есть функция установки ограничений на использование, задающихся через два специальных файла: cron.allow и cron.deny.

Первый файл находится в директории /usr/lib/cron/cron.allow и содержит в себе список учетных записей (имен пользователей), которые имеют право на планирование задач с помощью встроенных системных утилит.

Второй файл находится в директории /usr/lib/cron/cron.deny. В нем указываются имена пользователей, которые не могут запускать встроенный в систему планировщик задач.

Если первого файла не существует, то любой пользователь может планировать задачи с помощью встроенного в систему планировщика, но только при условии, что его имени нет во втором файле. Если удалить оба файла, то каждый пользователь сможет планировать задачи без ограничений.

Синтаксис crontab

Первые три линии кода в таблице отвечают за первичную настройку. Сначала указывается оболочка, в которой будет работать Cron. У утилиты нет каких-либо предпочтений, поэтому можно указать любую на собственное усмотрение (в нашем примере это bash). Затем указывается адрес электронный почты, на который будут отправляться отчеты о работе планировщика. И напоследок указывается путь к окружению.

Ниже находятся параметры, используемые для запуска процессов в определенный период времени. В комментариях описан базовый синтаксис, включающий в себя формат времени, имя пользователя и команду, которая должна быть запущена.

В нашем случае указаны команды:

Примеры использования Cron в командной строке

создает в таблице расписания задачу на запуск скрипта под названием bckp (представим, что такой существует), который создает резервную копию всей системы на стороннем накопителе. Он выполняется 5 числа каждого месяца в 4 часа 2 минуты утра. Это видно по числовым значениям. Звездочки же указывают на отсутствие конкретного значения. Cron воспринимает их как «выполнять каждый раз», то есть каждый месяц, день или неделю.

меняет время аппаратного обеспечения на то, что используется в системе. Делает это каждый день, каждую неделю и каждый месяц в 6 часов 4 минуты утра. Как видите, здесь пропущено третье значение. Поэтому команда и запускается ежедневно, так как нет более конкретных правил.

запускает обновление пакетов с помощью пакетного менеджера apt каждый месяц 5 числа в 05:10.

удаляет содержимое папки с временными файлами для конкретного пользователя (меня) на пятой минуте (первый пункт) каждого часа. Так как определенные значения отсутствуют для всех остальных пунктов, получается, что скрипт готов выполняться каждый день, каждый месяц и каждый час. Но первое значение указано, поэтому он будет дожидаться пятой минуты и запускаться в этот момент. То есть в 12:05, 13:05, 14:05 и т.п.

Как видите, разобраться с базовыми командами несложно.

Другие примеры настройки Cron

На примере команды для удаления временных файлов разберем пару-тройку нестандартных настроек расписания.

К примеру, некоторые показатели можно вводить не в виде цифр, а в виде сокращенных слов. Чтобы запускать удаление временных файлов каждую пятницу в 4 часа вечера, необходимо ввести в crontab:

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

Можно заставить планировщик выполнять задачу только в определенные месяцы. Чтобы запускать удаление временных файлов 1 февраля, 1 мая и 1 сентября в половину первого ночи, необходимо ввести в crontab:

Некоторые скрипты необходимо выполнять только по будням, поэтому в Cron есть возможность исключить некоторые дни недели из расписания:

Часы тоже можно делить. Например, запускать ту или иную задачу каждые 3 часа. Для этого нужно поставить слэш в графе с установкой времени по часам:

Вместо заключения

О работе с Cron стоит знать еще пару важных вещей.

Во-первых, всегда указывайте корректный почтовый адрес в параметрах. Это позволит собирать информацию о запускаемых по расписанию задачах. В этих письмах содержится и информация о возникающих ошибках. Во-вторых, при указании «исполнителя» в панели управления Timeweb важно делать корректный выбор, чтобы он соответствовал запускаемой задаче. В-третьих, информацию о работе Cron можно собирать в отдельный файл с помощью команд в духе:

На этом все. Следуйте инструкциям, не путайте порядок параметров и внимательно изучайте журнал ошибок, если что-то пойдет не так. После недолгой практики вы поймете, что работать с Cron не так уж и сложно!

Источник

Оцените статью