AT run command/s once time only
reference http://www.computerhope.com/unix/uat.htm
steps:
- write at and the time
- insert the command
- press CTRL-D
example of a command that run the same day at 09:34 in the morning
$ at 0934
warning: commands will be executed using /bin/sh
at> echo 'ciao' >> test.log
at> <EOT>
job 1 at Fri Oct 3 09:34:00 2014
in the link above there are all the syntax for difference time
CRON
/etc/crontab #file di configurazione globale
/var/spool/cron/crontabs #dove va il file di cron personale
cron.deny cron.allow #file in etc per negare la possibilità di creare propri cron
#formato min ora giorno mese giornosett(0=dom) utente comendi
#intervallo 15-20 #insieme di valori 1,5,6
crontab -e #modifica il proprio crontab
crontab -l #visualizzza il proprio crontab
crontab -r #rimuove il prorpio crontab
#non può accedere all'interfacci grafica con facilità
#ANACRON
#per workstation, avviato da cron,
at 10am Jul 31 #parte una shell si esce con CTRL+D
batch #come at ma esegue quando la macchina ha poco lavoro
atq #esamina la coda dei processi
atrm job # elimina il job
- Cron è il demone che si occupa delle operazioni, viene avviato all'avvio e ve ne sono due versioni la vixie (più usata) e la Dillon's
- crontab è un programma che genera dei "file di crontab" diversi in base all'utente che ne ha richiesto la creazione che permettono di fare delle operazioni pianificate, l'output dei comandi emessi tranne se è stata eseguita una reidirezione viene inviato all'utente che ha richiesto l'esecuzione del comando
- cron interpreta i file di crontab in /var/spool/cron/crontabs e /etc/crontab
-uso di crontab (ovviamente solo root può cambiare il crontab di un altro utente)
crontab [-u utente] file
Sostituisce il file crontab con il contenuto del file indicato come argomento.
crontab -l [utente]
Visualizza il file crontab dell'utente.
crontab -e [utente]
Crea o modifica il file crontab dell'utente.
crontab -r [utente]
Cancella il file crontab dell'utente.
file di crontab variabili:
in questo file si possono assegnare variabili con "nome=valore"
Ci sono delle variabili predefinite:
SHELL: la shell che deve eseguire i comandi
LOGNAME: nome dell'utente non può essere modificato
HOME: la dir personale dell'utente
MAILTO: non assegnata di default, se assegnata e li dove vengono mandate le mail, se la var non esiste viene mandato all'utente, se è stringa vuota non viene mandato alcun msg
per modificare la variabile HOME=/home/peppe , per usare la var $HOME
-file di crontab comandi:
il comando ha il formato "data_orario comando"
data_oraro: ha il formato "minuti ore giorni_del_mese mesi giorni_della_settimana" ogni campo può contenere un * per indicare il ripetersi
modalità d'inserimento:
1-5 in minuti vuol dire dal minuto 1 al minuto 5
1,5,43 al minuto 1, al 5, al 43
*/15 vuol dire di ripetere quel comando ogni 15 minuti
comando:
comando%testo da inviare allo standard input
dal secondo % in poi segno d'interruzione riga
- /etc/crontab:
formato leggermente diverso dai precedenti, nella prima parte c'è ora-data poi il nome utente per il quale si deve eseguire quel comando ecco una riga di esempio "01 * * * * root mkdir /home/peppe"
Un bella guida in italiano qui http://www.feelinglinux.com/articles/cron.jsp ne copio un pezzo
s1 s2 s3 s4 s5 Proprietario Comando
"s1" rappresenta i minuti. I valori permessi vanno da 0 a 59. E' possibile specificare anche intervalli (piu' avanti spiegati brevemente).
"s2" rappresenta le ore. I valori permessi vanno da 0 a 23. E' possibile specificare anche intervalli (piu' avanti spiegati brevemente).
"s3" rappresenta i giorni all'interno di un mese. I valori permessi vanno da 1 a 31. E' possibile specificare anche intervalli (piu' avanti spiegati brevemente).
"s4" rappresenta i mesi. I valori permessi vanno da 1 a 12 (piu' i nomi in lettere). E' possibile specificare anche intervalli (piu' avanti spiegati brevemente).
"s5" rappresenta i giorni della settimana. I valori permessi vanno da 0 a 7 (piu' i nomi in lettere, 0 e 7 rappresentano entrambi la Domenica). E' possibile specificare anche intervalli (piu' avanti spiegati brevemente).
da questa guida http://www.pantz.org/software/cron/croninfo.html
Instead of the first five fields, one of eight special strings may appear:
string meaning
------ -------
@reboot Run once, at startup.
@yearly Run once a year, "0 0 1 1 *".
@annually (same as @yearly)
@monthly Run once a month, "0 0 1 * *".
@weekly Run once a week, "0 0 * * 0".
@daily Run once a day, "0 0 * * *".
@midnight (same as @daily)
@hourly Run once an hour, "0 * * * *".