Полезное для программистов:

Фриланс
Новости
Статьи
   
Рубрики:


Автозапуск скриптов

Поиск:
Смотрю эти вопросы стали очень популярны в последнее время:
"Как запустить скрипт в определенное время?"
"Как запускать скрипты через определенный промежуток времени?"
и т.п.

Ответ очевиден, Вам надо использовать Cron.

cron запускается автоматически из /etc/init.d при многопользовательском уровне запуска системы.
cron ищет свою буферную область (/var/spool/cron/crontabs), где находятся файлы crontab (имена которых соответствуют именам в /etc/passwd) Если такие файлы найдены, то они загружаются в память.

В дополнении замечу, что cron проверяет каждую минуту дату модификации буферного каталога (или дату модификации /etc/crontab) на предмет изменения и если изменение было, то cron будет анализировать даты модификации для всех crontab файлов и те, что были изменены будут перезагружены. Таким образом cron не нуждается в перезапуске, если crontab файлы будут изменены. Замечу, что команда crontab(1) обновляет время модификации буферной директории, когда она изменяет crontab.

Синтаксис:
Код
# минуты        часы    день_месяца     месяц   день_недели     пользователь    команда
#
 */5           *       *               *       *               root            /root/autorun.sh



Описание:
Поле            Допустимое значение
Минуты          0-59
Часы            0-23
День_месяца     1-31
Месяц           1-12 или первые три буквы английского названия месяца (регистр не учитывается)
День_недели     0-7 (где 0 и 7 это воскресенье) или первые три буквы английского названия дня в неделе (регистр не учитывается)


Использование:
Значения могут быть числом, трехбуквенным названием, а так же диапазоном например запись <1-5> в поле день_недели будет означать <с понедельника по пятницу>. Значения могут отделяться запятыми: <1,15,31> в поле день_недели будет запускать указанную команду 1-го, 15-го и 31-го числа каждого месяца.

Все пять полей времени допускают использование символа звездочка - <*>, который обозначает <использовать любое допустимое значение> для этого поля. Например для того что бы запускать команду каждый месяц, поставьте <звездочку> в поле месяц.

Также можно использовать значения вида <*/число>. Например <*/2> в поле месяц будет означать <запускать каждый второй месяц>. В системном списке заданий есть подобный пример:
Код
 */5           *       *               *       *               root            /root/autorun.sh


Эта строка читается так: выполнять команду /root/autorun.sh от пользователя root, если текущая минута делится нацело на пять (или просто каждые пять минут), каждый час каждый день любого месяца.


И заключительная таблица, перед тем как снова обратиться к /etc/crontab. Вы можете заменить все пять полей времени следующими подстановками:

Строка          Что это значит
@reboot         Запускать при начальной загрузке
@yearly         Заменяет "0 0 1 1 *", т.е. <ежегодно в 00:00 1 января>
@annually       Тоже что и yearly
@monthly        Заменяет "0 0 1 * *", т.е. <ежемесячно в 00:00 1 числа>
@weekly         Заменяет "0 0 * * 0", т.е. <еженедельно в 00:00 воскресенье>
@daily          Заменяет "0 0 * * *", т.е. <ежедневно в 00:00>
@midnight       Тоже что и daily
@hourly         Заменяет "0 * * * *", т.е. <ежечасно в 00 минут>
Автор: Cepera
Сайт: http://www.cepera.org/






Просмотров: 5096

 

 

Новые статьи:


Популярные:
  1. Как сделать цикличным проигрывание MIDI-файла?
  2. Создание AVI файла из рисунков
  3. Как устройство "отключить в данной конфигурации"?
  4. Kто в данный момент присоединен через Сеть?
  5. Как узнать количество доступной памяти?
  6. Как реализовать в RichEdit разноцветный текст?
  7. Как скрыть свое приложение от ProcessViewer
  8. Как программно нажать/скрыть/показ кнопку "Start"?
  9. Модуль работы с ресурсами в PE файлах
10. Функции вызова диалоговых окон выбора
11. Проверка граматики средствами Word'а из Delphi.
12. Модуль для упрощенного вызова сообщений
13. Функции для записи и чтение своих данных в, ЕХЕ- файле
14. Рекурсивный просмотр директорий
15. Network Traffic Monitor
16. Разные модули
17. Универсальная функция для обращения к любым экспортируем функциям DLL
18. Библиотека от VladS
19. Протектор для UPX'а
20. Еще об ICQ, сообщения по контакт листу?
21. Использование открытых интерфейсов
22. Теория и практика использования RTTI
23. Работа с TApplication
24. Примеры использования Drag and Drop для различных визуальных компонентов
25. Что такое порт? Правила для работы с портами
26. Симфония на клавиатуре
27. Загрузка DLL
28. Исправление автоинкремента
29. Взаимодействие с чужими окнами
30. Проверить дубляжи в столбце


 

 

 
 
На главную