Cron

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 * * * *".
Salvo diversa indicazione, il contenuto di questa pagina è sotto licenza Creative Commons Attribution-ShareAlike 3.0 License