Automatització de tasques amb Cron

Automatització de tasques amb Cron

La terminal de Linux ens permet fer coses que van més enllà de la simple escriptura d'ordres. En aquest cas parlarem de l'automatització de tasques amb Cron.

Cron és un dimoni que s'encarrega de fer tasques en un interval específic de temps. Tot i que la seva funció és ocupar-se de tasques regulars de manteniment del sistema, podem afegir-ne d'altres que ens resultin d'interès.

Quan parlem de dimonis no ens referim a un diable endins del nostre ordinador. En informàtica un dimoni (de l'anglès daemon) és una aplicació o procés executat en segon pla al sistema operatiu sense requerir interacció directa amb l'usuari. Entre les seves ocupacions hi ha les connexions de xarxa, impressió, servidors web o monitorització de recursos.

Algunes de les seves característiques principals

  • Generalment s'inicien amb l'arrencada del sistema.
  • Corren en segon pla, sense que l'usuari s'assabenti de la seva existència.
  • Estan pensats per executar tasques de manera permanent o com a reacció a determinats esdeveniments.

Automatització de tasques amb Cron

Si volem indicar què fer a Cron podem fer-ho mitjançant un fitxer crontab. Es tracta només d'un fitxer de text que indica una sèrie d'ordres que el cron haurà d'executar en una data especificada. Hi ha dos tipus de fitxers crontab: el fitxer crontab creat pel sistema i, els creats pels usuaris.

En cap punt de vista hauríem de tocar el fitxer crontab del sistema que és l'utilitzat per Linux per a la configuració i manteniment. És impossible modificar-lo per error ja que aquest fitxer es troba a la carpeta. /etc/crontab.

Creant els nostres propis crontabs

Cron necessita que les tasques que us assignem tinguin els paràmetres indicats en aquest ordre:

h: Hora d'inici a interval 0-23.

m: Minuts en interval 0-59.

d: Dia del mes entre l'interval 1-31

mes: Especifica el mes de l'any amb un interval 1-12

s: Dia de la setmana amb l'interval 0-6

Aquestes dades van dins del fitxer crontab. Per crear aquest fitxer escrivim l'ordre:
crontab –u nombre de usuario –e
Si el crontab serà per a l'usuari per defecte podem ometre el paràmetre -u
Quan l'executem per primera vegada ens dirà que l'arxiu no existeix i ens proposarà crear-ne un i editar-lo amb algun dels editors instal·lats a l'equip.

Alguns punts a tenir en compte en editar crontab són:

  • Cada tasca va en una línia
  • En tots els casos s'han d'indicar la data i l'hora en què s'ha d'executar cada tasca.
  • Podeu assignar més d'un valor a un paràmetre (per exemple dimarts i dijous a les 18) Separant els dos valors per comes.
  • Cal deixar espais entre els paràmetres.
  • Indicar el directori on hi ha el llançador de l'ordre.

Per donar-ne un exemple, si volem reiniciar cada dia l'ordinador a les 19:

0 19 * * * /sbin/reboot

Perquè el reinici sigui només els dimecres, la instrucció seria:

0 20 * * 3 /sbin/reboot.

Hi ha algunes dreceres que ens eviten escriure tots els paràmetres:

@hora: Si volem executar una ordre a l'inici de cada hora.
@diari: Per córrer l'ordre en començar cada dia.
@setmanal: Corre la comanda el primer dia de la setmana.
@mensual: La comanda s'executa el primer minut de cada mes.
@anualment: El mateix però al primer minut de cada any.
Alguns exemples d'utilització d'aquesta ordre:

@daily /bin/sh /ruta_al_script/nombre_del_script.sh Executa instruccions personalitzades en un script bash al començament del dia.

@hourly /bin/python3 /ruta_al_script/nombre_del_script.py Fa que un script a pytnon s'executi a cada hora.

Sempre ens hem d'assegurar que els scripts tinguin permisos d'execució.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.