livebox:scheduler

This is an old revision of the document!


Scheduler

crond scans the CRONTAB file every minute and checks every line to determine if the specified time/date information matches the current time/date. If they are equal, the command line specified will be executed.

Enabling cron can be done via web interface via the ADMIN>Services tab.

Toggling this radio button will change the following configuration entry in /etc/xap-livebox.ini with 1 being enabled and missing or 0 being disabled.

[cron]
enable=1
This section might need amending when we enter daylight savings as it's a little tricky to test as of the time of writing.

To make sure you are running cron in the right timezone you'll need to setup the /etc/TZ file.

# echo GMT0BST-1 >/etc/TZ

If you are on the EAST coast of the US you would use

# echo EST5EDT4 >/etc/TZ

See for more examples http://wiki.openwrt.org/doc/uci/system

You create and configure your crontab entries by using the crontab command line program. The command “crontab -e” will open the editor VI by default.

# crontab
BusyBox v1.12.1 (2011-11-30 14:38:56 EST) multi-call binary

Usage: crontab [-c DIR] [-u USER] [-ler]|[FILE]

        -c      Crontab directory
        -u      User
        -l      List crontab
        -e      Edit crontab
        -r      Delete crontab
        FILE    Replace crontab by FILE ('-': stdin)

They will be created and stored in /etc/crontabs if you wish to back them up.

There are several helper scripts that allow you to send xAP messages.

  • bscmsg - will send an xAPBSC.cmd message
  • aliasmsg - will send a class=alias payload in keeping with xap-googlecal and xap-twitter behaviour. This can be in turn processed by an alias Lua plugboard applet.

Both of these scripts are written in Lua and are installed into /usr/bin on your system, so you can browse the source and use them as starters for your own scripts.

For example aliasmsg will send this message with %s being substituted for the argument you supply to the script.

xap-header
{
class=alias
}
command
{
text=%s
}

A sample crontab might look like. Using bscmsg we are turning an RF unit On at 7:00am and Off an 7:01am, transposing this to 8am and using the aliasmsg script we can do a similar thing.

0 7 * * * bscmsg -t dbzoo.livebox.controller:rf.1 -s on
1 7 * * * bscmsg -t dbzoo.livebox.controller:rf.1 -s off
0 8 * * * aliasmsg "rf 1 on"
1 8 * * * aliasmsg "rf 1 off"

Want to wake a machine using Wake-on-LAN? This entry would send a WoL packet to the specified MAC address at 7am Mon-Fri.

0 7 * * 1-5 ether-wake -i br0 3c:d9:2b:5b:67:c2
Still confused by this syntax? too hard? Try this…
http://www.cronmaker.com/
A handy tool which can help you form your crontab entries.

The helper scripts can be run from the command line to test that you have got the correct syntax before putting this same command line string into a crontab.

# bscmsg
bscmsg:missing required parameter: t

  Various flags and option types
    -t (string)   xAPBSC Target
    -s (onoff)    xAPBSC State
    -x            xAPBSC Text
    -l            xAPBSC Level
#
  • livebox/scheduler.1323358557.txt.gz
  • Last modified: 2011/12/08 15:35
  • by minerva9