18

Jan

Operazione pianificate su Linux - at

Posted by muse as Linux

Il comando at, a differenza di cron, serve ad eseguire un’operazione un’unica volta, nel giorno e all’orario stabilito.

Sintassi del comando at

Digitando il comando at seguito dall’orario o dalla data ci si trova di fronte ad un prompt a cui passare i comandi che si vogliono eseguire :

muse@workstation:$ at 18:30

warning: commands will be executed using /bin/sh
at> echo “inizia registrazione radio deejay”

at> vlc mms://live.mediaserver.kataweb.it/radiodeejay –sout file/asf:cordialmente.asf -d

at> <EOT>
job 1 at Fri Jan 11 20:30:00 2008

Una volta inseriti i comandi da eseguire, si può uscire premendo ctrl+d, ottenendo come risposta <EOT> e una riga contenente i dettagli sul job appena configurato. La lista dei job impostati può essere visualizzata digitando atq:

muse@workstation:$ atq

1 Fri Jan 11 22:30:00 2008 a muse

2 Fri Jan 11 23:30:00 2008 a muse

Si può poi decidere di rimuovere il job tramite atrm seguito dal numero corrispondente. Ovviamente i risultati di questi cmandi si riferiscono ai job (o tasks) relativi all’utente con il quale si è loggati.

L’orario può essere specificato in formato 24h o am-pm, in quest’ultimo caso va specificato (at 4:00 pm). La data può essere espressa in formato MM/DD/YYYY oppure YYYY-MM-DD . E’ possibile inoltre indicare il nome del mese (jan, feb, ecc..) e il giorno tramite il numero (1,2..31) e non indicare l’anno. I seguenti comandi sono equivalenti

at 11/21/2008

at 2008-11-21

at nov 21

E’ possibile utilizzare l’operatore + per indicare un orario relativo secondo lo schema

+ <numero> <unitĂ  di tempo>

dove l’unitĂ  di tempo può essere minutes, hours, days o weeks. Alcuni esempi possono essere

at 22:30 + 2 days - il comando sarĂ  eseguito fra due giorni alle 22 e 30

at 8 pm +2 hours - il comando viene eseguito alle 10 pm ( si, è stupido ma è un e

sempio)

La sintassi di at comprende anche dei parametri “informali” con i quali è possibile configurare un job in modo amichevole (^^ che bellu), ad esempio :

muse@workstation:$ at teatime

> echo “è l’ora del thè”

at> <EOT>

Questo stamperĂ  a schermo “è l’ora del thè” alle 4 del pomeriggio.. i parametri di questo tipo sono:

teatime - corrisponde alle 16 (però!.. intelligente eh?)

now - esegue il comando immediatamente

noon - corrisponde alle 12 am

midnight - corrisponde alle 24 o 12 pm

today, tomorrow - ovviamente oggi e domani

Alcuni usi tipici di questi parametri possono essere:

at now + 3 hours - esegue il comando fra 3 ore

at noon tomorrow - esegue il comando domani alle 12

Opzioni di at.

Le opzioni consentite da at sono

-l : stessa funzione di atq, visualizza la lista dei job

-r <num> : stessa funzione di atrm, rimuove il job <num> (vedi sopra)

-m: consente di inviare una mail all’utente per notificarlo sull’esecuzione del comando e sull’output eventualmente prodotto

-f: consente di indicare un file contenente i comandi da eseguire.

Nel caso venga indicato un file da eseguire, il prompt dei comandi di at non verrĂ  visualizzato:

muse@workstation:~$ at 22:30 -f radiodeejay.sh
warning: commands will be executed using /bin/sh
job 2 at Sun Jan 13 22:30:00 2008

Casi particolari

Se si avvia at indicando un orario già passato, il comando verrà eseguito immediatamente. Stessa cosa accade se il sistema è spento nel momento in cui avrebbe dovuto eseguire un job di at, al riavvio verrà eseguito immediatamente.

Autorizzazioni

Il sistema di autorizzazioni per l’esecuzione dei job per gli utenti del sistema è simile a quello di Cron, sono presenti infatti due file at.deny e at.allow con la liste degli utenti abilitati oppure no.

Comments are closed.