Site Tools


cron

Каждые 2 часа в 10 минут. (14:10; 16:10 … etc)

10 */2 * * * /some/prog

Каждую минуту:

* * * * * /some/prog

При каждой загрузке:

@reboot  /some/prog
*    *    *    *    *  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)
Загрузка GUI

Крон по умолчанию не имеет переменной DISPLAY: и доступа по xhost
Для DISPLAY можно прописать переменную в начале crontab или запускать по:

 * * * * * env DISPLAY=:0.0 gui_appname

Для xhost следует указать xhost +127.0.0.1“ или ”/usr/bin/xhost +local:local“. Если xhost следует запускать из cron, то процесс должен уже иметь доступ к дисплею, другими словами запускаться не от root а от пользователя которому принадлежит дисплей. К примеру:
Crontab пользователя:

@reboot /usr/bin/env DISPLAY=:0.0 /usr/bin/xhost +local:local

Crontab root:

DISPLAY=:0.0
 * * * * * /some/gue_app

Есть сложность с Ubuntu, так как @reboot выполняется до авторизации под пользователем, а после прохождения авторизации xhost затерается дефолтным.

http://www.linux.org.ru/forum/general/2389724
https://help.ubuntu.com/community/CronHowto

Отправка stdout(или stderr) на почту

Прописать в начале файла crontab:

MAILTO="yourname@yourdomain.com"
Переменные

Cron, запускается с набором стандартных, минимальных переменных. Доп переменные можно указать в файле crontab на равне с MAILTO, к примеру:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/root/python
DISPLAY=:0.0

Discussion

Constantin Conovaloff, 2017/03/22 16:25
# for user in $(cut -f1 -d: /etc/passwd); do echo -------------- $user ; crontab -u $user -l ; done
You could leave a comment if you were logged in.
cron.txt · Last modified: 2012/01/31 12:02 (external edit)

Page Tools