Activitats

Fitxer de crontab d'usuari

L’objectiu d’aquesta activitat és aprendre el format de les línies del fitxer de crontab d’usuari.

Especifiqueu el format de les línies que caldria incloure al fitxer de crontab d’un usuari per executar de manera automàtica un guió de shell anomenat /usr/local/bin/alerta.sh:

  • Cada dia a les 05.00 h.
  • A les 14.15 h el primer dia de cada mes.
  • A les 22.00 h els dies entre setmana.
  • Cada 5 minuts.
  • Cada dues hores.

Utilització de l'ordre crontab

L’objectiu d’aquesta activitat és aprendre a planificar tasques amb cron a nivell d’usuari amb l’ordre crontab.

Inicieu una sessió amb Bash i creeu un guió de shell que es digui hola.sh i que contingui les línies següents:

  1. #!/bin/bash
  2. # hola.sh
  3. echo "******************"
  4. echo "Hola mon"
  5. echo "Sóc $USER"
  6. echo "Avui és $(date +%x)"
  7. echo "Són les $(date +%R)"
  8. echo "******************"

Deseu el shell script al vostre directori d’inici.

Amb l’ordre crontab planifiqueu l’execució automàtica del guió de shell hola.sh al cron del vostre usuari tenint en compte el següent:

  • Fixeu una hora d’execució de manera que en pugueu comprovar el funcionament. Per exemple, si són les 19.00 h fixeu l’hora a les 19.10 h.
  • Redirigiu la sortida estàndard i la d’error del procés a un fitxer anomenat hola.log situat al vostre directori de treball.

Expliqueu pas a pas el procés realitzat i quines comprovacions heu fet.

Comproveu el fitxer de registre del servei de cron (requereix drets de superusuari) per veure si hi ha alguna traça relacionada amb la vostra activitat amb cron i l’execució de la vostra tasca.

Utilització de l'ordre crontab

L’objectiu d’aquesta activitat és aprendre a planificar tasques amb cron utilitzant el fitxer del sistema /etc/crontab.

Inicieu una sessió amb Bash. Amb el superusuari root creeu un directori anomenat copies a l’arrel del sistema:

  1. mkdir /copies

Creeu un guió de shell que es digui copia.sh i que contingui les línies següents:

  1. #/bin/bash
  2. echo "$(date +%X) Inici de la còpia."
  3. cd /
  4. tar -zcPf /copies/home.tgz -C home
  5. echo "$(date +%X) Final de la còpia."
  6. exit 0

Planifiqueu l’execució automàtica del guió de shell copia.sh perquè l’executi l’usuari root utilitzant la configuració de /etc/crontab i tenint en compte el següent:

  • Fixeu una hora d’execució de manera que en pugueu comprovar el funcionament.
  • Redirigiu la sortida estàndard i la d’error del procés a un fitxer anomenat copia.log ubicat al directori /copies.

Control de l'accés a cron

L’objectiu d’aquesta activitat és aprendre a controlar quins usuaris poden o no utilitzar els serveis de cron amb els fitxers /etc/cron.allow i /etc/cron.deny.

Digueu com podeu configurar el control de l’accés a cron en els supòsits següents:

  1. Cap usuari del sistema ha de poder planificar tasques.
  2. Cap usuari del sistema excepte un usuari anomenat super ha de poder planificar tasques.
  3. Tots els usuaris del sistema excepte un usuari anomenat convidat han de poder planificar tasques.

Automatització i planificació dels procediments de còpia de seguretat

L’objectiu d’aquesta activitat és aprendre a implementar procediments de còpia i recuperació i a programar-ne l’execució automàtica amb un planificador de tasques.

Sou responsables de l’administració del sistema d’un servidor GNU/Linux. Us han demanat que feu còpies de seguretat de totes les dades ubicades en un sistema de fitxers anomenat /dades. Es necessiten còpies diàries i mantenir les còpies antigues durant 14 dies. Us han explicat que treballen amb pocs fitxers, però que els modifiquen gairebé diàriament.

  1. Tenint en compte que el sistema de fitxers /dades té un volum de dades petit i que les dades varien amb molta freqüència, digueu quins són els avantatges i inconvenients d’utilitzar els diferents esquemes de còpies de seguretat estudiats i decidiu quina estratègia implementareu.
  2. Implementeu l’estratègia de còpies escollida suposant que les còpies es fan a disc en un sistema de fitxers anomenat /copies i utilitzant el llenguatge de guions Bash i el planificador cron per a l’automatització i la planificació de les tasques requerides. Trieu i justifiqueu quin és el millor horari per planificar les còpies.
  3. Digueu què caldria fer i les ordres que caldria utilitzar en el cas que ens demanin de recuperar un únic fitxer de fa 5 dies.
  4. Digueu què caldria fer i les ordres que caldria utilitzar en el cas que ens demanin de recuperar un únic fitxer de fa 20 dies.
  5. Digueu què caldria fer i les ordres que caldria utilitzar en el cas que /dades s’hagi malmès i es vulgui recuperar completament en un nou sistema de fitxers que heu creat, anomenat /dades2.

Automatització dels procediments de creació massiva d'usuaris

L’objectiu d’aquesta activitat és aprendre a implementar procediments d’alta massiva d’usuaris.

Suposeu que esteu treballant en un centre on es fan cursos de Linux i cada cert temps necessiteu donar d’alta al sistema els usuaris que participen en un curs determinat. Heu decidit fer un guió de shell anomenat creausu.sh per automatitzar aquesta tasca amb les característiques següents:

El guió de shell accepta un paràmetre, de manera que la sintaxi de la crida a l’script és:

  1. creausu.sh nom_grup nom_fitxer

El paràmetre nom_grup és el nom del grup primari de tots els usuaris que s’han de crear. Es pot donar el cas que el grup ja estigui creat al sistema o bé que sigui un grup nou.

El paràmetre nom_fitxer és un fitxer de text que conté la llista dels noms d’usuaris que es volen crear separats per salts de línia.

Per exemple, si fem la crida:

  1. creausu.sh curs1 usuaris.txt

i usuaris.txt conté les línies següents:

  1. agarcia
  2. spoveda
  3. msanchez

llavors es crearà (si no existeix ja) el grup d’usuaris curs1 i els usuaris agarcia, spoveda i msanchez amb grup primari curs1. La contrasenya inicial dels usuaris serà igual que el nom del curs i la mateixa per a tots. En aquest cas seria curs1. Els usuaris tindran el seu directori d’inici a /home/nom_usuari.

Cada un dels missatges que es van generant en l’execució de l’script han d’anar precedits de la data i hora en què es genera el missatge, de la manera següent:

  1. dd/mm/aa - hh:mm --> Text del missatge

Els missatges han de sortir per pantalla, però també han de quedar enregistrats en un fitxer de registre ubicat a /var/log/creausu.log. Perquè sigui així heu d’utilitzar una funció anomenada missatge que rep com a paràmetre el missatge de sortida. La implementació de la funció és la següent:

  1. missatge () {
  2. DATA=$(date +"%x - %X")
  3. echo "$DATA --> $1"
  4. echo "$DATA --> $1" >> $FITXER_LOG
  5. }

Heu de definir correctament la variable FITXER_LOG a l’inici del guió de shell.

Anar a la pàgina següent:
Exercicis