At (Unix)at è un comando dei sistemi operativi Unix e Unix-like, e più in generale dei sistemi POSIX[1], che permette di far eseguire uno o più comandi in un dato momento nel futuro, senza che sia richiesta la presenza dell'utente. Usando ripetutamente il comando at è possibile accodare più gruppi distinti di comandi, da eseguirsi in momenti diversi. L'eventuale output prodotto dai comandi (lo standard output e lo standard error), se non specificato diversamente, verrà inviato tramite email all'utente che li ha accodati. Quest'ultimo può anche farsi notificare via email del completamento dell'esecuzione dei comandi. Il comando batch è una variante del comando at che usa impostazioni predefinite diverse tali da eseguire quanto prima i comandi usando una priorità inferiore a quella normalmente usata da at. Di fatto equivale al comando at -m -q b now, che esegue i comandi non appena il sistema non ha altre operazioni urgenti da eseguire e che notifica via email anche il completamento dell'esecuzione. L'ambiente in cui i comandi sono eseguiti è reso per quanto possibile simile a quello in cui essi sono stati specificati. In altre parole, oltre ai comandi stessi, sono memorizzati anche:
Se non specificato diversamente, at legge la sequenza dei comandi da eseguire dallo standard input (un comando per linea) fino all'esaurimento dei dati (nell'uso interattivo in un terminale è tipicamente possibile indicare ciò con la sequenza Ctrl-D). Un gruppo di comandi accodati prende il nome di at-job (un job di at), a cui il sistema assegna un identificativo univoco che permette di farvi riferimento in seguito, ad esempio per annullare una esecuzione. UsoIl comando at può essere invocato in più modi a seconda che si vogliano accodare comandi da eseguire, elencare i comandi accodati oppure annullare un gruppo di comandi accodati. Accodare comandiIn questo caso esistono due modi di invocare il comando che differiscono solo nel modo in cui viene specificato l'istante in cui eseguire i comandi. La prima forma è la seguente: at [opzioni] -t data_e_ora L'istante data_e_ora viene specificato secondo il formato che segue (che è lo stesso usato nel comando touch):
Ad esempio, per esprimere le 15:30:23 del 22 luglio 2009, si può usare -t 200907221530.23. La seconda forma è invece la seguente: at [opzioni] timespec L'istante è specificato tramite il parametro timespec, composto di più parti:
Tra le opzioni che possono essere specificate vi sono:
Elencare i comandi accodatiIn questo caso vi sono due forme: at -l -q coda elenca informazioni sugli at-job dell'utente corrente che sono accodati nella coda specificata. at -l [job_id1 …] elenca informazioni sugli at-job dell'utente corrente identificati dai parametri job_id. Se non è specificato alcun job_id, elenca tutti quelli presenti al momento. In alcuni sistemi, tra cui ad esempio Debian GNU/Linux, esiste anche il comando Annullare comandiIn questo caso la sintassi è la seguente: at -r job_id Il parametro job_id è l'identificativo assegnato dal sistema al gruppo di comandi che si vuole annullare. In alcuni sistemi, tra cui ad esempio Debian GNU/Linux, occorre specificare l'opzione EsempiEsegue dopo venti minuti i comandi $ at now + 20 minutes at> cd /tmp at> ls -l at> ^D job 10 at Thu Apr 23 23:24:00 2009 Esegue il comando $ at 2:30 nov 1 at> mpg123 urlo.mp3 at> ^D job 11 at Sun Nov 1 02:30:00 2009 Elenca i comandi accodati per l'utente corrente: $ at -l 10 Thu Apr 23 23:24:00 2009 a matteo 11 Sun Nov 1 02:30:00 2009 a matteo Elimina i comandi programmati per il 1º novembre, che hanno identificativo 11: $ at -r 11 NoteVoci correlateAltri progetti
Collegamenti esterni |