The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Crontab с ограничением по времени"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Разное)
Изначальное сообщение [ Отслеживать ]

"Crontab с ограничением по времени"  +/
Сообщение от vfp7 email(ok) on 02-Сен-13, 16:43 
Добрый день всем
Давно назревало, и вот настал момент истины :)
Потребовалось автоматически запускать программу даже при перезагрузке системы, но в определенный интервал времени. На текущий момент эта прога стартует так:

crontab -e

@reboot /usr/local/bin/mpc play 1 > /dev/null 2>&1
0       8-22    *       *       *       /usr/local/bin/mpc play 1 > /dev/null 2>&1
50      22      *       *       *       /usr/local/bin/mpc stop > /dev/null 2>&1
10,55   7       *       *       *       /usr/local/bin/mpc play 3 > /dev/null 2>&1
45,50,55        20      *       *       *       /usr/local/bin/mpc play 1 > /dev/null 2>&1

То есть mpc работает ВСЕ время с 8 утра до 23 вечера, даже при перезагрузке системы и т.д.
Но нужно добиться что бы, если сервер перезагрузится в прочее время ( с 23:00 до 8:00 ), то mpc не стартовал.
Это звуковая система установленная на первом этаже жилого дома, жильцы дома будут явно не в восторге от работы звуковой системы в ночное время :)
Иногда приходится сервер ставить в шедуллер на перезагрузку ночью, плюс возможен вариант отключения электричества в ночное время ( все системы авто стартуют при подаче напряжения ).

Есть ли вариант через крон задать ограничение по времени?
( Кому нужна система: freebsd 9.1 x64 )

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Crontab с ограничением по времени"  +/
Сообщение от михалыч (ok) on 02-Сен-13, 17:32 
> Есть ли вариант через крон задать ограничение по времени?

Скрипт написать.

#!/bin/sh

TIME=`date +%H`
if [ $TIME -ge 23 -o $TIME -lt 8 ]; then
    # проверяем работу mpc
    pgrep -q mpc
    if [ $? -eq 0 ]; then
        /usr/local/bin/mpc stop
    fi
    exit
else
    /usr/local/bin/mpc start
fi

и по крону каждый час
либо по ребуту без куска с проверкой работы mpc, т.е. сразу на exit а то целый час будет нервы на прочность испытывать))

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Crontab с ограничением по времени"  +/
Сообщение от vfp7 email(ok) on 02-Сен-13, 18:18 
0 1 1-7 * * [ "$(date '+\%u')" -eq 7 ] && echo "Эта надпись выводится каждое первое воскресенье каждого месяца в 1:00"

Я бы склонился в эту сторону, типа минискрипта в теле крона - пока собираю информацию как правильнее сделать ...

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Crontab с ограничением по времени"  +/
Сообщение от vfp7 email(ok) on 02-Сен-13, 19:34 
На текущий момент оптимальный вариант в крон по ребуту воткнуть запуск такого скрипта:
( Он сам найдет минимальное и максимальное время для mpc из крона )

#!/bin/sh
TIME=`date +%H`
NAMEAPP=mpc
MINTIME=`crontab -l | grep ${NAMEAPP} | cut -f2 | awk 'BEGIN { min = 23} { if ( $1 < min ) min = $1 } END  {  print min }'`
MAXTIME=`crontab -l | grep ${NAMEAPP} | cut -f2 | awk 'BEGIN { max = 23} { if ( $1 > max ) max = $1 } END  {  print max }'`
if [ ${TIME} -ge ${MINTIME} ] && [ ${TIME} -le ${MAXTIME} ]; then
    /usr/local/bin/mpc play 3 > /dev/null 2>&1
fi

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Crontab с ограничением по времени"  +/
Сообщение от vfp7 email(ok) on 03-Сен-13, 11:11 
На текущий момент оптимальный вариант в крон по ребуту воткнуть запуск такого
скрипта:
( Он сам найдет минимальное и максимальное время для mpc из крона
)

#!/bin/sh
TIME=`date +%H`
NAMEAPP=mpc
MINTIME=`crontab -l | grep ${NAMEAPP} | cut -f2 | awk 'BEGIN {
min = 23} { if ( $1 < min ) min
= $1 } END  {  print min }'`
MAXTIME=`crontab -l | grep ${NAMEAPP} | cut -f2 | awk 'BEGIN {
max = 1 } { if ( $1 > max ) max
= $1 } END  {  print max }'`
if [ ${TIME} -ge ${MINTIME} ] && [ ${TIME} -le ${MAXTIME} ];
then
     /usr/local/bin/mpc play 3 > /dev/null 2>&1
fi


Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру