Для начала нужно знать, что такое
cron и для чего он нужен.
cron это программа которая в определенное время выполняет какую нибудь задачу. К сожалению он не присутствует во всех имиджах. Самый простой способ узнать, запущен он у вас или нет, набрать в консоли:
ps ax |grep cronЕсли в ответ получили, что то типа этого
root@dm800:~# ps ax |grep cron
9352 root 556 S grep cron
то все нормально.
Для запуска команд используется демон, который запускается из
/etc/init.d cron периодически запускается и проверяет содержимое файлов
crontab. Все задания находятся в
/var/spool/cron/crontabs в файле с именем пользователя. Так как в Дриме пользователь один
root, то и задания будут хранится в файле
rootТеперь рассмотрим листинг самого файла:
SHELL=/bin/sh
PATH=/sbin:/bin:/var/bin
Для Enigma2 путь для поиска команд будет немного отличаться
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/bin
Формат строки задания будет следующим:
* * * * * command to be executed
- - - - -
| | | | |
| | | | +----- day of week (0 - 6) (Sunday=0)
| | | +------- month (1 - 12)
| | +--------- day of month (1 - 31)
| +----------- hour (0 - 23)
+------------- min (0 - 59)
[время и дата] [команда]1. Минуты (0-59)
2. Часы (0-23)
3. Дни месяца (1-31)
4. Месяц года (1-12)
5. День недели (0-6) # 0 это воскресенье
6. Выполнимая команда
Также используется символ
*, который обозначает
"каждый". Например, каждый день, месяц, час.
Пример строки:
30 4 * * * rebootЭта строка означает, что каждый день в 4:30 утра Дрим будет делать перезагрузку.
Еще одна интересная возможность. В каталоге
/var/spool/cron создаем каталоги
hourly,
daily,
weekly,
monthly и в эти каталоги помещаем скрипты, которые требуется выполнить.
Пример:
30 4 * * * /bin/run-parts /var/spool/cron/dailyrun-parts, означает, что в 4.30 каждый день будут выполнены все скрипты или исполняемые файлы из каталога
/var/spool/cron/dailyНу и на самый конец, о команде
crontab.
crontab -e режим редактирования
crontab -l выводит все задания cron
crontab -r удаляет все задания cron