Про демон crond написан, наверное, уже не один десяток статей. То, что я не открою Америку написав на эту тему пару строк - это факт. Но, тем не менее, очень кратко пару строк.
Демон crond стартует при запуске операционной системы. проконтролировать запущен ли он можно набрав команду:
ps aux | grep crond
если в выводе команды ps мы увидим строку вида:
root 2213 0.0 0.0 4540 1128 ? Ss Jun20 0:00 crond
значит демон crond запущен.
Работает он до безобразия просто.Есть такой файл /etc/crontab. В нем прописываются задания которые будут стартовать в определенное время. Формат такой:
- сначала указывается время:
минута час день месяца месяц день недели, например:
0-59 0-23 1-31 1-12 0-7 (0 или 7 это Воскресенье)
- затем - login пользователя от которого будет запускаться приложение
- затем выполняемое задание причем обязательно с полным путем.
Например:
01 1 * * 0 root /home/backup/sql-back.sh > /dev/null 2>&1
В один час и одну минуту каждое воскресенье от имени пользователя root (и соответственно с его правами) запускается скрипт /home/backup/sql-back.sh (это самописаный бекап mysql)
Но это еще не совсем все.
Также в системе linux присутствует каталог /etc/cron.d. Если там присутствуют файлы имеющие такой же синтаксис, как и в файле /etc/crontab то задания из него будут выполняться тоже.
Но и это еще не все.
Также в системе существует папка /var/spool/cron где также могут храниться задания cron. Но их синтаксис немного отличается. Там не указывается логин пользователя от которого он будет запускаться. Логином является само имя файла.
Вообще-то для создания, редактирования и удаления заданий cron, которые находятся в этом каталоге существует специальная команда: crontab
- Запущенная с ключем -e она редактирует существующее задание cron для данного пользователя либо создает новое задание, если его не было.
- Запущенная с ключем -l выводит спикок заданий текущего пользователя на экран.
- Запущенная с ключем -r удаляет задание cron текущего пользователя.
Внимание!
Также необхожимо упомянуть что после редактирования заданий кронтаб (не используя команду crontab) необходимо дать команду демону crond перечитать свои конфиги:
service crond reload
Или, в некоторых Linux-системах:
service cron reload
Ну вот теперь практически все, что касается демона crond.