Su un sistema operativo Linux, le attività vengono pianificate usando il cosiddetto servizio "cron", con questo servizio è possibile
eseguire attività "cron".
Le attività "cron" permettono agli utenti di Linux di eseguire comandi o script ad una specifica data/ora. Ad esempio è possibile pianificare script da
eseguire periodicamente.
Le attività "cron" sono uno dei più utili strumenti di Linux. Il servizio (daemon) "cron" viene eseguito in secondo piano
e costantemente controlla la presenza dei file "crontab" all'interno del sistema operativo.
Per gestire le attività "cron" su un Router (Asus RT-AC86U) si usa il comando "cru", questo comando aggiunge, elimina ed elenca
le attività "cron".
Il comando "cru" in realtà è uno script e semplicemente gestisce il file "crontab" presente nella cartella "/var/spool/cron/crontabs" - il
nome del file "crontab" in realtà è chiamato "admin" poiché "admin" è l'utente principale con i più alti privilegi all'interno del router.
Questo è un esempio dello script "cru" all'interno di un router:
#!/bin/sh D="/var/spool/cron/crontabs" U="$D/cron.update" F="$D/`nvram get http_username`" N="$F.new" L="/var/lock/cron.lock" if [ $# -gt 1 -a "$1" = "a" -o "$1" = "d" ]; then if [ -f $L ]; then I=$((($$ % 25) + 5)) while ! rm $L 2>/dev/null; do I=$(($I - 1)) [ $I -lt 0 ] && break sleep 1 done fi ID=$2 grep -v "#$ID#\$" $F >$N 2>/dev/null if [ "$1" = "a" ]; then shift shift echo "$* #$ID#" >>$N fi mv $N $F echo `nvram get http_username` >>$U echo >$L exit 0 fi if [ "$1" = "l" ]; then cat $F 2>/dev/null exit 0 fi cat <<END Cron Utility add: cru a <unique id> <"min hour day month week command"> delete: cru d <unique id> list: cru l END exit 0
Questo invece è un esempio della guida del comando "cru":
Cron Utility add: cru a <unique id> <"min hour day month week command"> delete: cru d <unique id> list: cru l
Il primo parametro "unique id" contiene un ID unico per l'attività "cron".
Il secondo parametro del suddetto comando "cru" segue le stesse indicazioni del "crontab", pertanto avremo:
Per eseguire uno script ogni 5 minuti, useremo il comando "cru" nel seguente modo:
cru a everyfiveminutes "*/5 * * * * sh /opt/etc/myscript.sh"
Per eseguire uno script alle 4:00 di mattina ogni giorno:
cru a backupscript " 0 4 * * * sh /opt/etc/myscripts/backup_script.sh"
Per eseguire uno script alle 4:00 di mattina ma solo nei giorni di domenica e di mercoledì:
cru a backupscript " 0 4 * * 0,3 sh /opt/etc/myscripts/backup_script.sh"