Automatització de tasques
Introducció
Moltes de les tasques d'administració d'un servidor s'han de portar a terme de manera periòdica.
Per exemple:
fer còpies de seguretat dels teus arxius un cop al dia
actualitzar el sistema
canviar el fons de pantalla cada 30 minuts.
És necessari que el sistema operatiu ens proporcioni alguna eina per a poder configurar totes aquestes tasques de forma automàtica i periòdica.
El dimoni [daemon] anomenat crond és el que s'encarrega de gestionar tot el sistema d'execucions periòdiques.
Servei cron
El Linux té un servei anomenat cron que funciona despertant-se cada minut i mirant un fitxer on hi ha les tasques programades.
Podem saber que el procés s'està executant amb la comanda:
ps aux | grep cron
En el fitxer /etc/crontab
conté la informació de les tasques programades.
Cada usuari té el seu propi fitxer crontab.
Programar tasques periòdiques
La comanda crontab
permet programar tasques periòdiques i especificar el moment d'execució.
Es pot configurar el cron per cada usuari, tot i què normalment només es fa pel root.
Per veure les tasques programades de l'usuari actual.
sudo crontab -l
Per editar el fitxer de tasques de l'usuari actual.
sudo crontab -e
Per editar el fitxer de tasques de l'usuari root.
sudo crontab -u root -e
Per eliminar les taques programades de l'usuari actual.
crontab -r
Editar tasques programades
sudo crontab -e
La primera vegada què es posi en marxa, demanarà amb quin editor es vol modificar la configuració: per defecte està marcada la opció 2 (/bin/nano
)
Els camps què s'han de posar a cada línia són els següents:
< minut > < hora> < diaMes> < mes> < diaSetmana> < usuari> < comanda>
(0-59) (0-23) (1-31) (1-12) (0 o 7=diumenge - 6)
minut (0-59): en quin minut o minuts s'ha d'executar la comanda.
hora (0-23): en quina o quines hores s'ha d'executar la comanda.
dia del mes (1-31): en quin o quins dies del mes s'ha d'executar la comanda.
mes (1-12): en quin o quins mesos s'ha d'executar la comanda.
dia de la setmana (0-7): tant el 0 com el 7 representen el diumenge. La comanda només s'executarà si cau en un dels dies especificats.
usuari: l'usuari que s'utilitzarà per a executar la comanda.
comanda: comanda o script a executar. Si és un script, convé indicar tota la ruta, per exemple:
/home/usuari/script.sh
Exemples:
Símbol | Significat | Exemple | |
* | Tot el rang. Cada unitat de temps | diaMes * | Cada dia |
num | Per indicar el moment concret | Hora 15 | A les 15:00h |
num-num | Rang de valors consecutius No posar espais | Mes 1-6 | Del Gener al Juny |
num, num, num | Per indicar valors concrets de hores, dies o mesos. No posar espais | diaSetmana 1,3,5 | Cada dilluns, dimecres i divendres |
*/num | Cada determinat temps | Hores */2 | Cada 2 hores |
num-num/num | Hora 8-20/5 | Entre les 8h i les 20h, cada 5 hores |
Exercici
Solució
Amb entorn gràfic
Per automatitzar tasques en mode gràfic, s'utilitza el programa anomenat Tareas programadas (gnome-schedule).
Amb Ubuntu hi accedim des de Aplicacions> Eines del sistema > Tasques programades
Aquest programa permet programar tasques per ser realitzades només una vegada o periòdicament.
Última actualización