37.2. At e batch

Mentre cron è usato per pianificare operazioni ricorrenti, il comando at consente di pianificare un'operazione da eseguire una sola volta in un dato momento. Il comando batch consente di pianificare un'operazione da eseguire una sola volta quando il carico medio del sistema va al di sotto di 0.8.

Per usare at o batch il pacchetto RPM at deve essere installato, e il servizio atd deve essere in esecuzione. Per determinare se il pacchetto è installato, usate il comando rpm -q at. Per determinare se il servizio è in esecuzione, usate il comando /sbin/service atd status.

37.2.1. Configurazione dei processi At

Per pianificare un processo da eseguire una sola volta in un dato momento, digitate il comando at tempo, dove tempo è il momento di di esecuzione del comando.

L'argomento tempo può essere uno dei seguenti:

L'ora deve essere specificata per prima, seguita dalla data opzionale. Per maggiori informazioni sul formato, consultate il file di testo /usr/share/doc/at-<versione>/timespec.

Dopo avere digitato il comando at con il tempo, compare il prompt at>. Digitate il comando di esecuzione, premete [Invio], quindi digitate Ctrl-D. È possibile specificare più comandi premendo dopo ciascuno di essi il tasto [Invio]. Dopo aver digitato tutti i comandi, premete [Invio] per posizionarvi in una riga vuota, quindi digitate Ctrl-D. In alternativa, al prompt è possibile inserire uno script della shell, premendo [Invio] dopo ogni riga dello script, e digitando Ctrl-D su una riga vuota per uscire. Se inserite uno script, la shell usata è la stessa impostata nell'ambiente SHELL dell'utente, la shell di login dell'utente, o /bin/sh (l'elemento rilevato per primo).

Se la serie di comandi o script cerca di visualizzare le informazioni, l'output viene inviato via e-mail all'utente.

Utilizzate il comando atq per visualizzare i processi non ancora eseguiti. Per maggiori informazioni consultate la Sezione 37.2.3.

L'uso del comando at può essere limitato. Consultate la Sezione 37.2.5 per maggiori dettagli.

37.2.2. Configurazione dei processi batch

Per eseguire un'operazione una sola volta quando il carico medio del sistema va al di sotto di 0.8, usate il comando batch.

Dopo avere digitato il comando batch, il prompt at> viene visualizzato. Inserite il comando da eseguire, premete [Invio], quindi digitate Ctrl-D. È possibile specificare più comandi premendo dopo ciascuno di essi il tasto [Invio]. Dopo aver digitato tutti i comandi, premete [Invio] per posizionarvi in una riga vuota, quindi digitate Ctrl-D. In alternativa, al prompt è possibile inserire uno script della shell, premendo [Invio] dopo ogni riga dello script, e digitando Ctrl-D su una riga vuota per uscire. Se inserite uno script, la shell usata è la stessa impostata nell'ambiente SHELL, la shell di login dell'utente, o /bin/sh (l'elemento rilevato per primo). Non appena il carico medio va al di sotto di 0.8, la serie di comandi o di script viene eseguita.

Se la serie di comandi o script cerca di visualizzare le informazioni, l'output viene inviato via e-mail all'utente.

Utilizzate il comando atq per visualizzare i processi non ancora eseguiti. Per maggiori informazioni consultate la Sezione 37.2.3.

L'uso del comando at può essere limitato. Consultate la Sezione 37.2.5 per maggiori dettagli.

37.2.3. Visualizzazione dei processi da eseguire

Per visualizzare i processi at e batch non ancora eseguiti, utilizzate il comando atq. Verrà visualizzato l'elenco di tali processi, ognuno dei quali sarà su di una riga. Ogni riga ha il formato "jobnumber, date, hour, job class, e username". Gli utenti possono solo visualizzare i propri processi. Se l'utente root esegue il comando atq, saranno visualizzati i processi di tutti gli utenti.

37.2.4. Opzioni da linea di comando aggiuntive

Le opzioni da linea di comando aggiuntive per at e batch includono:

OpzioneDescrizione
-fConsente di leggere i comandi o lo script della shell da un file invece di specificarli al prompt.
-mConsente di inviare messaggi di posta all'utente al termine del processo.
-vConsente di visualizzare l'ora in cui il processo verrà eseguito.

Tabella 37-1. at e batch Opzioni da linea di comando

37.2.5. Controllo dell'accesso a at e batch

I file /etc/at.allow e /etc/at.deny possono essere usati per limitare l'accesso ai comandi at e batch. Il formato di entrambi i file di controllo dell'accesso è costituito da un nome utente su ciascuna riga. Non possono essere lasciati spazi vuoti. Il demone at (atd) non deve essere riavviato se i file di controllo dell'accesso vengono modificati. Questi file sono letti ogni volta che un utente cerca di eseguire i comandi at o batch.

L'utente root può sempre eseguire i comandi at e batch, indipendentemente dai file di controllo dell'accesso.

Se il file at.allow esiste, solo gli utenti qui elencati sono autorizzati a utilizzare at o batch e il file at.deny viene ignorato.

Se at.allow non esiste, gli utenti elencati in at.deny non sono autorizzati a utilizzare at o batch.

37.2.6. Avvio e interruzione del servizio

Per avviare il servizio at, utilizzate il comando /sbin/service atd start. Per interrompere il servizio, utilizzate il comando /sbin/service atd stop. Si consiglia di eseguire il servizio all'avvio. Consultate il Capitolo 21 per ulteriori dettagli sull'esecuzione automatica del servizio cron all'avvio.