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
-
Executar un script cada dia a les 2:30 AM:
30 2 * * * /ruta/al/script.sh
-
Executar un script cada dilluns a les 5:00 PM:
0 17 * * 1 /ruta/al/script.sh
-
Executar un script cada 15 minuts:
*/15 * * * * /ruta/al/script.sh
-
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:
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:
Esborrar el Crontab
Per esborrar totes les tasques programades en el crontab de l'usuari actual, utilitza:
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ó:
-
Crea un script anomenat
hola.sh
amb el següent contingut:#!/bin/bash echo "Hola, món!" >> /ruta/al/registre.log
-
Fes que l'script sigui executable:
chmod +x /ruta/al/hola.sh
-
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ó:
-
Crea un script anomenat
backup.sh
amb el següent contingut:#!/bin/bash tar -czf /ruta/al/backup.tar.gz /directori/a/copiar
-
Fes que l'script sigui executable:
chmod +x /ruta/al/backup.sh
-
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
- Què és Linux?
- Història de Linux
- Distribucions de Linux
- Instal·lant Linux
- Estructura del Sistema de Fitxers de Linux
Mòdul 2: Comandes Bàsiques de Linux
- Introducció a la Línia de Comandes
- Navegant pel Sistema de Fitxers
- Operacions amb Fitxers i Directoris
- Visualització i Edició de Fitxers
- Permisos i Propietat dels Fitxers
Mòdul 3: Habilitats Avançades de la Línia de Comandes
- Ús de Comodins i Expressions Regulars
- Piping i Redirecció
- Gestió de Processos
- Programació de Tasques amb Cron
- Comandes de Xarxa
Mòdul 4: Scripting de Shell
- Introducció al Scripting de Shell
- Variables i Tipus de Dades
- Estructures de Control
- Funcions i Biblioteques
- Depuració i Gestió d'Errors
Mòdul 5: Administració del Sistema
- Gestió d'Usuaris i Grups
- Gestió de Discs
- Gestió de Paquets
- Monitorització del Sistema i Optimització del Rendiment
- Còpia de Seguretat i Restauració
Mòdul 6: Xarxes i Seguretat
- Configuració de Xarxa
- Tallafocs i Seguretat
- SSH i Accés Remot
- Sistemes de Detecció d'Intrusions
- Assegurant Sistemes Linux
Mòdul 7: Temes Avançats
- Virtualització amb Linux
- Contenidors de Linux i Docker
- Automatització amb Ansible
- Optimització del Nucli de Linux
- Alta Disponibilitat i Balanceig de Càrrega