Меню Рубрики

Cron в 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 вновь запустится и продолжит выполнять свои непосредственные обязанности.

Читайте также:  Mac os xps чем открыть

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

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

Источник

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. Она очистит все задания.

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

Источник

Ludovic Rousseau’s blog

My activities related to smart card and Free Software (as in free speech).

Читайте также:  Mac os android home

Thursday, February 19, 2015

Using cron on Mac OS X

This article is not about smart card. I wrote it to remember how to do and, possibly, help other Mac OS X users.

Mac OS X is a Unix system and so can be used as a Unix system with all the normal commands and services found on a Unix system.

I discovered recently that every thing was installed to use cron on my Mavericks (10.9) system.

cron – daemon to execute scheduled commands

The goal of cron is to run commands periodically. For example your can start a backup command or a Jenkins job on a regular schedule.

Mail configuration

cron sends its output and error messages by email. So you need to have your email configured correctly.

Sending an email

By default email is already working on Mac OS X for a local delivery. You can check it using:
Of course you use your own login name instead of rousseau.

This command will send the time and date in an email to rousseau with subject “test”.

You should not have any output from the command unless you get an error.

If your mail server require an user authentication you may need to configure your Postfix local configuration.

Reading an email

The same command mail can be used to read emails stored locally.

Here we can read our test email. Then delete it using the ” d ” command and quit using the ” q ” command.

Redirecting your emails

/.forward file. This file should contain the email you want to redirect your emails to:

Test again to send you an email and check the redirection is working.

Cron configuration

cron uses a crontab to store the user configuration. Each user has its own crontab configuration. Use the shell command crontab to edit the configuration.

crontab uses the editor configured in the EDITOR environment variable or vi by default.

The problem with vi (or vim) is that vi exits with a return value that is considered as an error by crontab:
And all your edition is lost.

A solution found at “Error adding cronjobs in Mac OS X Lion” is to use nano instead of vi:

But I do not like nano and really prefer vim. So another way to solve that is to create a file (you may use the TextEdit graphical application to edit the file but take care to use the Text and not RTF format). I named my file crontab so that vim will do syntax colorization for me.

Читайте также:  Mac os kext wifi

Then install it using:

Check your configuration has been accepted using:

Read the crontab section 5 manual page ( man 5 crontab ) to know the format to use.

Conclusion

No need to install a graphical tool to periodically run a command on Mac OS X.

Mac OS X is and stays a Unix system under the graphical interface.

Источник

Scheduling Jobs With Crontab on macOS

Running scripts on your computer is great. Running them automatically is even better

Automatic running can be achieved on macOS (and Linux) by creating cron jobs! Let’s make an example job.

Suppose you want to run a script called work.sh which does some work for you — doesn’t really matter what the work is. You want to do this “work” every fifteenth minute of every hour, every day.

Here’s what I would do to achieve this.

Step 1

Make sure work.sh works properly and is in a place where you keep your helper scripts. For me, they’re usually in

Step 2

Next, fire up the terminal and run crontab -e . This should open up a file in vim for you. This file is essentially where you can list out your cron jobs — each job on its own line.

Setting cron jobs requires a specific format.

You can also use sites like Crontab.guru to generate cron expressions.

Step 3

Once you’re on the vim screen, hit i to put the editor into INSERT mode and then put 0,15,30,45 * * * * cd

/.scripts && ./work.sh on the first line. This expression evaluates to what we want the job to be.

  • Make sure work.sh is executable.

Step 4

After typing out the cron expression, hit esc and then type :wq to save and exit vim .

If you did everything properly, you should see the terminal tell you that it installed a new crontab . In case it tells you that the setup failed, double-check your cron expression.

Источник

Adblock
detector