IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Linux Professional Institute Certificate. LPIC-1

Lpic1 large.gif
Certificat LPIC-1
Examen: 102 (torneu a la resta de temes)
Fitxers: LPI107.2_CronIAt.pdf (LPI107.2_CronIAt.odp),UD_8_14_automatitzacio_tasques.pdf (Apunts Eva Dominguez)
Objectius: http://www.lpi.org/eng/certification/the_lpic_program/lpic_1/exam_102_detailed_objectives
Dipòsit SVN: https://svn.projectes.lafarga.cat/svn/lpi/Materials/Examen_102/107.2
Usuari: anonymous
Paraula de pas: qualsevol paraula de pas

Objectius del tema

107.2. Automatitzar tasques d'administració del sistema amb treballs programats
Objective.jpg
  • Objectiu: Els candidats han de ser capaços d'utilitzar cron o anacron per tal d'executar tasques en intervals regulars i utilitzar at per tal d'executar tasques en moments específics.
  • Pes: 4
060317 Icon - Theory of Knowledge v01 pdc.jpg

Àrees Clau de Coneixement:

  • Gestionar tasques de cron i at
  • Configurar l'accés dels usuaris als serveis cron i at
Icon list.jpg

La següent és una llista parcial de fitxers, termes i utilitats utilitzades:

Text-editor.svg

Apunts: LPI 107.2. Automatitzar tasques d'administració del sistema amb treballs programats


Cron

Cron com a dimoni

Aplicació no interactiva que s'executa en segon terme de forma continuada.

Cron.png

Comprovar que cron està funcionant

Mirem si esta en funcionament amb la comanda:

$ crontab -l
[email protected]:~$ crontab -l
no crontab for alumne

Es guarda el resultat redireccionant-ho a un altre fitxer posant-ho sempre al final amb el signe >>.

Configuració de cron amb crontab

Si quan ho configurem ho posem tot amb *, s'executara cada minut.

Si posem 30 * * * * s'executara cada mig hora de totes les hores (12:30, 13:30, 14:30...).

Si ens interessa que s'executi alguna cosa tots els dies a la mateixa hora o fem posant 30 5 * * * i es fara cada dia a les 5:30.

Si neccesitem enviar un correu, per exemple, un cop al mes ho fem posant * * 1 * *.

Si per exemple volem actualitza algun programa el primer dia del any posem * * 1 1 *.

Si neccesitem fer alguna accio cada 15 minuts ho podem fer escrivint 0,15,30,45 * * * *.

Format del fitxer crontab. crontable

Variables d'entorn

  • Les següents variables d'entorn s'estableixen segons el contingut del fitxer /etc/passwd de l'usuari:
  • SHELL, USER, LOGNAME, i HOME
  • IMPORTANT: La shell per defecte és sh (/bin/sh).
  • Totes les VE es poden modificar excepte USER.
  • Es pot establir TZ però s'ignorarà excepte si l'utilitza només en una ordre.
  • MAILTO s'utilitza per indicar el login name de l'usuari del sistema al qual se li envia el resultat de les ordres

Altres mètodes per automatitzar tasques

  • Fitxer /etc/crontab
  • NO es recomana editar-lo directament
  • Carpeta /etc/cron.d
  • Aquí és on les aplicacions col·loquen els seus scripts cron. No cal que siguin executables.
  • Utilitzar les tasques diàries, setmanals, ...
  • Segons el contingut de /etc/crontab
  • Cada hora al minut 17 s'executen el fitxers executables de la carpeta /etc/cron.hourly
  • Cada dia a les 6:65 s'executen el fitxers de /etc/cron.daily
  • Cada diumenge a les 6:47 s'executen el fitxers de /etc/cron.weekly
  • Cada dia 1 dels més a les 6:52 s'executen el fitxers de /etc/cron.monthly

Control de les sortides amb cron

Intèrprets d'ordres i cron

Control d'accés a cron

Fitxers de log

Exemples

Com enviar un correu cada 5 minuts durant la primera mitja hora de cada hora

  • Creem un fitxer de text per enviar-lo
touch missatge.txt

  • Editem el fitxer escrivint-hi alguna cosa a dintre
cat missatge.txt
  • Obrim la terminal i executem la següent comanda
crontab -e
  • Escrivim la següent linea.
5,10,15,20,25,30 * * * * cat missatge.txt | mail [email protected]
5,10,15,20,25,30 * * * * cat missatge.txt | mail [email protected]

El que fem en aquestes linies es que cada 5 minuts (5,10,15,20,25,30) s'envia un missatge a 2 correus, el meu ([email protected]) i el de un company per comprovar que s'envie correctament ([email protected]).

Adjunto la imatge per que es vegui com el correu m'ha arrivat correctament.

Missatge.png

anacron

at

Control d'accés a at

Paquets

Paquet cron

Paquet anacron

El anacron es un corn asincron.

IMPORTANT: asincron significa que no es sincron

L'anacron nomes pot executar tasques un cop al dia com a minim, o tambe cada setmana, cada mes... a diferencia del cron que les pot executar cada minut. Si el sistema es torna a iniciar o s'inicia després de la mitjanit, les tasques diàries són executades després de cert retard (entre 1 i 200 minuts despres d'encendre en pc) i de forma ordenada (una tasca anacron a l'hora).+


Entrem al anacron.

[email protected]:~$ cd /etc/cron.d
[email protected]:/etc/cron.d$ cat anacron
# /etc/cron.d/anacron: crontab entries for the anacron package

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

#30 7    * * *   root	test -x /etc/init.d/anacron && /usr/sbin/invoke-rc.d anacron start >/dev/null
30 7    * * *   root	start -q anacron || :

Ordres

crontab

Executem

crontab -e

Triem un editor


Select an editor.  To change later, run 'select-editor'.
  1. /bin/ed
  2. /bin/nano        <---- easiest
  3. /usr/bin/jmacs
  4. /usr/bin/joe
  5. /usr/bin/jpico
  6. /usr/bin/jstar
  7. /usr/bin/rjoe
  8. /usr/bin/vim.tiny

Choose 1-8 [2]: /bin/nano

I s'obrira el nano amb el següent comentari

# m h  dom mon dow   command

Exemple

Posem que cada 10 minuts ens doni un missatge de la següent forma:

10,20,30,40,50 * * * * env DISPLAY=:0 /usr/bin/zenity --warning --title="Et recomanem..." --text="Que DESCANSIS" --width=500 >> /home_local/ferran/logfile 2>&1

Mirem si s'ha executat el que nosaltres voliem i ho fem a traves del tail:

Jun  4 12:50:01 PC-IMATGE CRON[6194]: (alumne) CMD (env DISPLAY=:0 /usr/bin/zenity --warning --title="Ves a fer una cocacola" --text="Que t'ho  mereixes" --width=500 >> /home_local/alumne/logfile 2>&1)

at

atq

atrm

Fitxers de configuració

/etc/crontab

/etc/cron.d

/etc/cron.daily /etc/cron.hourly, /etc/cron.weekly, /etc/cron.monthly

/etc/at.deny

/etc/at.allow

/etc/crontab

/etc/cron.allow

/etc/cron.deny

/var/spool/cron/*

/etc/init/cron.conf

/usr/share/doc/cron/FEATURES

/etc/init/anacron.conf