Cron启动脚本仅在一天的某些时间

时间:2012-10-23 14:16:40

标签: time cron boot lirc

所以我有一系列脚本,用于在某些事件(例如启动,屏幕保护程序和远程控制)中控制我的接收器和电视电源。其中一个是在登录期间执行的,但事情可能是我不希望它在机器计划启动时运行脚本。我有逻辑在执行启动应用程序期间如果blanked = 0则忽略事件,因此它不会在启动或关闭期间发送ir。我怎样才能通过使用cron来实现这一目标?我选择cron是因为这些事件发生在启动应用程序之前。 Cron真棒,但据我所知,我只能在开机时或按计划运行,而不是两者兼而有之。我需要编写时间变量的脚本,但我不确定如何。

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脚本和屏幕状态更改的一部分)

#!/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 个答案:

答案 0 :(得分:-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

在9:42,12:42和15:42

会做什么awesomestuff.sh