Introducció

Cron és un servei de Linux que permet programar l'execució automàtica de tasques en moments específics. És una eina molt poderosa per a l'automatització de tasques repetitives, com ara còpies de seguretat, actualitzacions de sistemes, o qualsevol altre script que necessiti executar-se de manera periòdica.

Conceptes Clau

  • Cron Job: Una tasca programada que s'executa a intervals regulars.
  • Crontab: Un fitxer de configuració que conté una llista de cron jobs.
  • Daemon de Cron: Un procés en segon pla que executa les tasques programades.

Sintaxi del Crontab

La sintaxi bàsica d'una entrada en el fitxer crontab és la següent:

* * * * * /ruta/al/script.sh
- - - - -
| | | | |
| | | | +---- Dia de la setmana (0 - 7) (Diumenge és 0 o 7)
| | | +------ Mes (1 - 12)
| | +-------- Dia del mes (1 - 31)
| +---------- Hora (0 - 23)
+------------ Minut (0 - 59)

Exemples de Crontab

  1. Executar un script cada dia a les 2:30 AM:

    30 2 * * * /ruta/al/script.sh
    
  2. Executar un script cada dilluns a les 5:00 PM:

    0 17 * * 1 /ruta/al/script.sh
    
  3. Executar un script cada 15 minuts:

    */15 * * * * /ruta/al/script.sh
    
  4. Executar un script el primer dia de cada mes a la mitjanit:

    0 0 1 * * /ruta/al/script.sh
    

Administració del Crontab

Editar el Crontab

Per editar el fitxer crontab de l'usuari actual, utilitza la comanda:

crontab -e

Això obrirà l'editor de text predeterminat amb el fitxer crontab de l'usuari.

Llistar les Tasques Programades

Per veure les tasques programades en el crontab de l'usuari actual, utilitza:

crontab -l

Esborrar el Crontab

Per esborrar totes les tasques programades en el crontab de l'usuari actual, utilitza:

crontab -r

Exercicis Pràctics

Exercici 1: Programar una Tasca Simple

Objectiu: Programa una tasca que imprimeixi "Hola, món!" en un fitxer de registre cada dia a les 8:00 AM.

Solució:

  1. Crea un script anomenat hola.sh amb el següent contingut:

    #!/bin/bash
    echo "Hola, món!" >> /ruta/al/registre.log
    
  2. Fes que l'script sigui executable:

    chmod +x /ruta/al/hola.sh
    
  3. Afegeix la següent entrada al crontab:

    0 8 * * * /ruta/al/hola.sh
    

Exercici 2: Programar una Còpia de Seguretat

Objectiu: Programa una tasca que faci una còpia de seguretat d'un directori cada diumenge a les 3:00 AM.

Solució:

  1. Crea un script anomenat backup.sh amb el següent contingut:

    #!/bin/bash
    tar -czf /ruta/al/backup.tar.gz /directori/a/copiar
    
  2. Fes que l'script sigui executable:

    chmod +x /ruta/al/backup.sh
    
  3. Afegeix la següent entrada al crontab:

    0 3 * * 0 /ruta/al/backup.sh
    

Errors Comuns i Consells

  • Permisos: Assegura't que els scripts tenen permisos d'execució.

  • Ruta Completa: Utilitza rutes completes per als scripts i fitxers dins del crontab.

  • Sortida d'Errors: Redirigeix la sortida d'errors a un fitxer de registre per a la depuració:

    0 8 * * * /ruta/al/hola.sh 2>> /ruta/al/errors.log
    

Resum

En aquesta secció, hem après com utilitzar cron per programar tasques automàtiques en Linux. Hem vist la sintaxi del fitxer crontab, com editar-lo, llistar-lo i esborrar-lo, així com alguns exemples pràctics i exercicis per reforçar els conceptes apresos. Amb cron, podem automatitzar moltes tasques repetitives, millorant així l'eficiència i la productivitat en la gestió de sistemes Linux.

Domini de Linux: De Principiant a Avançat

Mòdul 1: Introducció a Linux

Mòdul 2: Comandes Bàsiques de Linux

Mòdul 3: Habilitats Avançades de la Línia de Comandes

Mòdul 4: Scripting de Shell

Mòdul 5: Administració del Sistema

Mòdul 6: Xarxes i Seguretat

Mòdul 7: Temes Avançats

Mòdul 8: Projectes Pràctics

© Copyright 2024. Tots els drets reservats