Cron boot script только в определенное время дня
Итак, у меня есть набор скриптов, которые используются для управления моим приемником и телевизором во время определенных событий, таких как загрузка, заставка и дистанционное управление. Один из них выполняется во время входа в систему, но дело в том, что я не хочу, чтобы он запускал script, когда машина должна была активироваться. У меня есть логика, чтобы игнорировать события, если blanked = 0 во время запуска загрузочных приложений, поэтому он не отправит ir во время загрузки или выключения. Как я могу это сделать, используя cron? Я выбираю cron, потому что эти события происходят до запуска приложений. Крон потрясающий, но насколько я понимаю, я могу работать только при загрузке или по расписанию не для обоих. Мне нужно script переменную времени, но я не уверен, как это сделать.
syson.sh(вызывается во время входа в систему как приложение для запуска и изменения состояния экрана)
#!/bin/sh
cd /home/gilson585/
blanked=`cat blanked`
if [ $blanked -eq 0 ] ; then
blanked=1;echo $blanked > blanked
else
irsend SEND_ONCE VR4085DF KEY_POWER;irsend SEND_ONCE Kenwood_RC-R0813 power;blanked=0;echo $blanked > blanked
sleep 1
irsend SEND_ONCE Kenwood_RC-R0813 cd/dvd
fi
sysoff.sh(вызванный во время выключения как часть lirc init.d script и изменение состояния экрана)
#!/bin/sh
cd /home/gilson585/
blanked=`cat blanked`
if [ $blanked -eq 0 ] ; then
irsend SEND_ONCE Kenwood_RC-R0813 power;irsend SEND_ONCE VR4085DF KEY_POWER;blanked=1;echo $blanked > blanked
fi
xscreensaver.sh(скринсейвер сторожевого таймера, вызываемый во время входа в систему)
#!/bin/bash
cd /home/gilson585/
xscreensaver-command -watch|
while read STATUS; do
case "$STATUS" in
BLANK*)
/home/gilson585/sysoff.sh;blanked=1;echo $blanked > blanked
;;
UNBLANK*)
/home/gilson585/syson.sh;blanked=0;echo $blanked > blanked
;;
esac
done
Ответы
Ответ 1
Ах. На данный момент вы можете использовать два сценария. Установка времени - это список недель/часов/минут/секунд/и т.д. Вы настроили его с такими параметрами, как
42 * * * * /bin/execute/awesomescript.sh
Это выполнит что-то на минуту 42 каждого часа. На этой странице есть объяснение, что я бы в основном извергался: http://kvz.io/blog/2007/07/29/schedule-tasks-on-linux-using-crontab/
Там также есть скрипты типа
42 9,12,15 * * * /bin/stuff/awesomestuff.sh
Что будет делать awesomestuff.sh в 9:42, 12:42 и 15:42