Programador de tasques a Deepin

Definició de tasca

En lloc d’haver d’executar manualment una ordre cada dia (com fer una còpia de seguretat, netejar fitxers temporals o comprovar si un servidor com Calibre està actiu), li deleguem aquesta feina al sistema, un cop hem fet, definit i comprovat en un fitxert .sh ,com calibre_watchdog.sh, que cada hora llança una ordre per activar calibre, assegurant el servei del servidor de calibre.


1. Com funciona per sota? (El motor cron)

 EDITOR=nano crontab -e

A Deepin (i a la majoria de distribucions Linux), el programador de tasques està gestionat per un dimoni (un procés en segon pla) anomenat cron.

Per dir-li a cron què ha de fer, s’utilitzen uns fitxers de configuració anomenats crontab (Contract Table). Cada usuari del sistema pot tenir el seu propi fitxer crontab.

El misteri de /tmp/crontab.122BlF/crontab

Si mai has obert el teu fitxer de tasques i has vist una ruta com /tmp/crontab.122BlF/crontab, no t’espantis.

  • /tmp/ és la carpeta de fitxers temporals de Linux.
  • 122BlF és una cadena aleatòria que el sistema genera en aquell moment.
  • Per què passa això? Quan executes l’ordre per editar les tasques, el sistema no edita directament el fitxer real (per evitar que es corrompi si es talla la llum o tanques la terminal de cop). Crea una còpia temporal a /tmp, tu fas els canvis, i en guardar, el sistema substitueix el fitxer real (que està amagat a /var/spool/cron/crontabs/) per la teva còpia temporal.

2. Interpretació de les línies del crontab

Cada línia del fitxer crontab representa una tasca. La sintaxi es basa en 5 camps de temps seguits de la comanda a executar:

m    h    dom    mes    dow    comanda_a_executar

Els 5 camps de temps:

  1. m (Minut): De 0 a 59.
  2. h (Hora): De 0 a 23 (format 24h).
  3. dom (Dia del mes): De l’1 al 31.
  4. mes: De l’1 al 12 (o abreujatures com jan, feb).
  5. dow (Dia de la setmana): De 0 a 7 (on 0 i 7 són diumenge, 1 és dilluns…).

Operadors per afinar la programació:

  • * (Asterisc): Vol dir «qualsevol» o «cada».
  • , (Coma): Per fer llistes (ex: 1,15 = el minut 1 i el 15).
  • - (Guió): Per fer rangs (ex: 1-5 = de dilluns a divendres).
  • / (Barra): Per fer intervals (ex: */10 = cada 10 minuts).

Exemples pràctics:

Línia al crontabQuè fa exactament?
0 * * * * /ruta/script.shS’executa en punt de cada hora (10:00, 11:00…).
30 8 * * * /ruta/script.shS’executa cada dia a les 8:30 del matí.
0 0 1 * * /ruta/script.shS’executa el dia 1 de cada mes a mitjanit.
*/15 * * * * /ruta/script.shS’executa cada 15 minuts.
0 9 * * 1-5 /ruta/script.shS’executa cada dia laborable (dilluns a divendres) a les 9:00.

3. Gestió des de la terminal

Tot i que Deepin té una interfície gràfica, la terminal és la via més ràpida i fiable. Les ordres principals són:

  • crontab -l (List): Llista les tasques programades de l’usuari actual.
  • crontab -e (Edit): Obre l’editor per afegir, modificar o esborrar tasques.
  • crontab -r (Remove): Esborra totes les tasques de l’usuari (compte amb això!).

Triar l’editor de text

Per defecte, Deepin pot obrir l’editor nano (terminal) o vi. Si vols fer servir un editor gràfic, has d’indicar-ho abans de l’ordre:

EDITOR=mousepad crontab -e

4. La part gràfica (GUI) a Deepin

Deepin no inclou de sèrie una interfície gràfica nativa i completa per gestionar el cron d’usuari al seu Centre de Control (el Centre de Control només gestiona aplicacions a l’inici de sessió). Per tant, tens dues opcions gràfiques:

Opció A: El mètode «Híbrid» (Recomanat)

Utilitzes la terminal només per cridar el teu editor de text gràfic preferit de Deepin.

  1. Assegura’t de tenir un editor gràfic instal·lat (com mousepad o xed).
  2. Obre la terminal i escriu:EDITOR=mousepad crontab -e
  3. S’obrirà una finestra gràfica amb el fitxer. Pots editar les línies amb el ratolí, guardar (Ctrl+S) i tancar.

Opció B: Programari gràfic pur (Gnome Schedule)

Si prefereixes un programa amb botons, menús desplegables i finestres dedicades, pots instal·lar Gnome Schedule. Tot i ser un programa antic, funciona perfectament en Deepin.

  1. Instal·lació: Obre la terminal i escriu:sudo apt update sudo apt install gnome-schedule
  2. Ús: Tanca la terminal, obre el llançador d’aplicacions de Deepin i busca «Programador de tasques».
  3. Configuració:
    • Fes clic a «Afegeix» (Add).
    • Tria «Una tasca que es llança regularment».
    • A la pestanya Bàsic, escriu la comanda (ex: /home/Miquel/calibre_watchdog.sh).
    • A la pestanya Avançat, pots configurar els minuts, hores i dies fent clic a les caselles, sense haver de memoritzar la sintaxi dels asteriscs.

5. Consells d’or per al programador de tasques

  1. Usa rutes absolutes: Al crontab, el sistema no sempre sap on ets. En lloc de posar ./script.sh, posa sempre /home/Miquel/script.sh.
  2. Redirigeix la sortida (>>): Com que les tasques s’executen en segon pla, no veuràs els errors. Afegeix sempre >> /ruta/al/registre.log 2>&1 al final de la comanda per tenir un historial.
  3. Comprova el dimoni: Si les tasques no s’executen, comprova que el servei cron estigui actiu amb: sudo systemctl status cron.