Автоматизация рутины в OS X. Урок 21. Скрипты по расписанию
Сегодня мы научимся делать отложенный запуск автоматизирующих скриптов: разберемся как превратить JavaScript-код в исполняемый файл и назначить время его запуска. Этот навык еще больше повысит уровень продуктивности читателя при работе с OS X и его можно будет применить к любой программе, из разобранных в предыдущих уроках.
Для того чтобы настроить время выполнения скрипта нам нужно сделать следующее:
- Превратить его в исполняемый файл.
- Добавить информацию о его запуске в crontab с помощью утилиты launctl.
Разберем как это сделать шаг за шагом.
Упаковываем скрипт в исполняемый файл
Для примера напишем простой скрипт, который будет открывать приложение Mail и отображать напоминание о том, что надо не забыть написать письмо.
// Кладем в переменную приложение «Mail» app = Application("Mail"); // Включаем использование элементов графического интерфейса app.includeStandardAdditions = true; // Отображаем всплывающие окно app.displayAlert("Не забыть написать письмо!");
Проверим, правильно ли выполняется код и сохраним его в файле MailReminder.scpt в корневом каталоге текущего пользователя. Утилита launchtl не работает с файлами формата scpt, в которых хранятся скрипты, написанные на JavaScript. Поэтому нам нужно превратить его в исполняемый файл.
Теперь открываем любой текстовый редактор и набираем в его окне следующую строку:
osascript MailReminder.scpt
Сохраняем этот текстовый файл под именем example.command. Делаем это в корневом каталоге текущего пользователя. Теперь открываем «Терминал» и вводим там следующую команду:
chmod +x example.command
Теперь файл example.command стал исполняемыми. Если кликнуть на файле example,command в Finder, то программа выполнится и появится окно с напоминанием отправить письмо.
Настраиваем время выполнение исполняемого файла
Создаем файл со следующим содержимым:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.alvin.crontabtest</string> <key>ProgramArguments</key> <array> <string>/Users/Irina/example.command</string> </array> <key>SomeKey</key> <integer>1</integer> <key>StartInterval</key> <integer>600</integer> <key>RunAtLoad</key> <true/> <key>StandardErrorPath</key> <string>/tmp/AlTest1.err</string> <key>StandardOutPath</key> <string>/tmp/AlTest1.out</string> </dict> </plist>
В параметре StartInterval указывается через какой промежуток времени необходимо повторять выполнение скрипта. Значение прописывается в секундах.
Назовем файл com.irina.crontabtest.plist и сохраним его в папке $HOME/Libraries/LaunchAgents.
Теперь войдем в систему и сообщим утилите launchtl о том, что в расписание нужно добавить новое действие.
sudo launchctl load /Libraries/LaunchAgents/com.irina.crontabtest.plist
Если в выполнении действия отпала необходимость, то его можно отменить с помощью команды unload.
sudo launchctl unload /Libraries/LaunchAgents/com.irina.crontabtest.plist
Стоит обратить внимание, что для добавления любых команд в расписание необходимы права суперпользователя (root).
Как заставить скрипт выполняться в определенный день недели?
Для этого в файле с расширением plist вместо параметра StartInterval необходимо прописать параметр SetCalendarInterval. Пример:
<key>StartCalendarInterval</key> <dict> <key>Hour</key> <integer>3</integer> <key>Minute</key> <integer>15</integer> <key>Weekday</key> <integer>6</integer> </dict>
Эти строчки говорят нам, что программу, указанную в файле, надо выполнять каждую субботу в 3 часа 15 минут.
Предыдущие публикации из цикла «Автоматизация рутины в OS X» вы можете найти по следующим ссылкам:
- Автоматизация рутины в OS X. Урок 1. Пакетная обработка изображений
- Автоматизация рутины в OS X. Урок 2. Генерация слайдов для презентаций
- Автоматизация рутины в OS X. Урок 3. Рассылаем спам
- Автоматизация рутины в OS X. Урок 4. Простейший парсинг почтового ящика
- Автоматизация рутины в OS X. Урок 5. Пакетная конвертация текстовых файлов
- Автоматизация рутины в OS X. Урок 6. Простейший парсинг веб-страниц
- Автоматизация рутины в OS X. Урок 7. Пакетная конвертация видео и аудио
- Автоматизация рутины в OS X. Часть 8. Архивируем и анализируем записи из «Заметок»
- Автоматизация рутины в OS X Часть 9. Пакетная архивация файлов
- Автоматизация рутины в OS X. Урок 10. Анализируем собственную продуктивность
- Автоматизация рутины в OS X. Часть 11. Автоматизируем показ презентаций
- Автоматизация рутины в OS X. Урок 12. Работаем с электронными таблицами
- Автоматизация рутины в OS X. Урок 13. Основы работы с Pages
- Автоматизация рутины в OS X. Урок 14. Редактирование изображений с помощью Image Magick
- Автоматизация рутины в OS X. Урок 15. iMacros
- Автоматизация рутины в OS X. Урок 16. Java Script Automation+Terminal+Apple Script = Сила
- Автоматизация рутины в OS X. Урок 17. QuickTime Player
- Автоматизация рутины в OS X. Урок 18. Используем элементы графического интерфейса в JavaScript Automation
- Автоматизация рутины в OS X. Урок 19. Взаимодействуем с веб-сервером через Terminal
- Автоматизация рутины в OS X. Урок 20. iTunes. Собираем информацию о плейлисте
Что еще почитать:
- Как восстановить удаленные контакты на iPhone
- Подробные характеристики iPhone 6
- Как очистить айфон от мусора
✅ Подписывайтесь на нас в Telegram, ВКонтакте, и Яндекс.Дзен.