Это плохо иметь длинный список в моем crontab?
Я занимаюсь созданием приложения для отображения сообщений на экране с желаемыми интервалами.
Я хочу использовать cron для достижения этого, и я рассматриваю свои варианты. Самым наивным подходом было бы напечатать команды непосредственно в crontab. Это плохая идея?
2 ответа
Нет, неплохо иметь длинный список crontab, cron выполняется за минуты в кратчайшие сроки, поэтому не в режиме реального времени, но вы также можете получать уведомления в режиме реального времени (см. ниже).
В качестве альтернативы вы также можете использовать cron запустить 1 скрипт, который выполняет все ваши разные crontab линии, которые в противном случае вы бы включили в ваш crontab где этот файл выполняется или проверяет все различные параметры, которые вы хотите получать уведомления. Это также было бы проще поддерживать: если вам нужно новое задание, вы добавляете его в свой скрипт и можете проверить, не испорчено ли это задание в самом скрипте (cron может быть довольно разборчивым).
Могу ли я также предложить вам взглянуть на создание upstart работа. Это было бы больше в стиле Ubuntu. Таким образом, вы создаете daemon или же service что вы можете начать и остановить из командной строки. Плюс это сделало бы ваши уведомления в режиме реального времени, а не периодически.
Upstart - это основанная на событиях замена для демона / sbin / init, который обрабатывает запуск задач и служб во время загрузки, останавливает их при завершении работы и контролирует их во время работы системы.
# Файл выгрузки Ubuntu по адресу /etc/init/yourservice.conf
предстартовый скрипт
mkdir -p /var/log/yourcompany/
конец сценария
респаун
предел возрождения 15 5
начать на уровне выполнения [2345]
остановка на уровне выполнения [06]
скрипт
su - youruser -c "NODE_ENV=test exec /var/www/yourcompany/yourproject/yourservice.js 2>&1" >> /var/log/yourcompany/yourservice.log
конец сценария
Использование gnome-schedule

Это интуитивно понятно, и легче запускать графические приложения из cron требует дополнительной работы) - просто не забудьте пометить команду как приложение X в конфигурации задачи.
Домашняя страница: http://gnome-schedule.sourceforge.net/
Пример использования: http://www.liberiangeek.net/2011/04/schedule-a-job-to-automatically-put-ubuntu-into-sleep-or-hibernation-mode/