M06 UF2:  Automatitzaciˇ de tasques i llenguatges de guiˇ
ASIX-2
GNU/Linux
Scripts del bash shell (Part 2)
13/03/20

Scripts del bash shell (Part 2)


EXAMEN PR└CTIQUES 1, 2 i 3

Data: 17-4-20
Horari: 17.00H a 19.30H
Lloc: Aula 504

NOTA IMPORTANT: L'examen de les prÓctiques 1 i 2 queda anulĚlat i es farÓ un examen de les 3 prÓctiques.

LLIURAMENT PR└CTICA 3

Scripts a enviar per alumne:  AquÝ
Data LÝmit: 5-4-2020  a les 23.59.59 (12 de la nit)
Publicaciˇ de solucions: 6-4-2020
Correu: cf@collados.org
Assumpte: asix2_cognom_nom_m06uf2pr3
Adjunt: asix2_cognom_nom_m06uf2pr3.tar.gz


1- Documentaciˇ
 

1.1- Funcions

a)
Definiciˇ de funcions
b) Pas de parÓmetres a funcions
c) Variables locals de funcions
d) Arxius de guiˇ amb exemples de treball amb funcions

1.2- Zenity
a)
Zenity (arxius de guiˇ amb interfÝcie grÓfica)
b) Exemples bÓsics
c) Exemples-1
d) Exemples-2
e) Canalitzaciˇ cap a zenity
f) Zenity: Escollir un fitxer i una opciˇ dins d'una llista



P
R└CTICA (PART 1) - FUNCIONS

1-
Fes un arxiu de guiˇ  de l'interpret d'ordres del bash shell per l'usuari root que tingui 2 funcions. La primera funciˇ s'anomenarÓ most_serv() i desprÚs de netjar la pantalla, mostrarÓ un men˙ per escollir entre els segŘent serveis: a) ssh, b) apache2 i c) cups. L'opciˇ escollida s'haurÓ d'enviar a una altra funciˇ de nom ctl_serv() que posarÓ el servei en funcionament  si el servei no estÓ en marxa.  Si el servei estÓ en marxa no farÓ res i finalitzarÓ la funciˇ. El programa finalitzarÓ amb el codi de retorn 10. El script s'anomenarÓ ctlsr.sh.

2- Fes un arxiu de guiˇ  de l'interpret d'ordres del bash shell per l'usuari root que tingui 5 funcions:
    * Funciˇ menu() --> Neteja pantalla i mostra les 3 opcions del programa que sˇn:
                       a) Crea grup
                       b) Afegeix un un usuari a un grup
                       c) Treu un usuari d'un grup
    *
Funciˇ crgrup() --> Neteja pantalla, demana dades per crear un grup i crea el grup
    *
Funciˇ afegrup() --> Neteja pantalla, demana dades d'un usuari i grup, i afegeix l'usuari al grup
   
* Funciˇ esbgrup() --> Neteja pantalla, demana dades d'un usuari i grup, i treu l'usuari del grup

El programa mostrarÓ pantalla el men˙, i executarÓ la funciˇ corresponent d'acord amb l'opciˇ escollida. Un cop realitzada la tasca escollida, el programa ha de demanar a l'usuari  si vol continuar treballant o sortir del programa. Si l'usuari escriu 's' llavors es tornarÓ a mostrar el menu i en cas contrari el programa finalitzarÓ enviant un 5 com a codi de retorn. El script s'anomenarÓ usgp.sh.

3- Fes un arxiu de guiˇ  de l'interpret d'ordres del bash shell que mostri per pantalla el n˙mero de fitxers amb permisos d'execuciˇ (per l'usuari que l'executa) i de mida diferent a zero que es troben en un directori del qual es demanarÓ el nom a l'usuari. A continuaciˇ, el nom del directori es passarÓ com a parÓmetre a una funciˇ de nom comptador() que serÓ l'encarregada de comptar el n˙mero de fitxers que compleixen les condicions indicades al principi i mostrar el resultat per pantalla. El programa finalitzarÓ amb el codi de retorn 20. El nom del script serÓ compt_fitx.sh.               

PR└CTICA (PART 2) - ZENITY

1- Fes un arxiu de guiˇ de l'interprets d'ordres del bash shell, que tingui un GUI utilitzant amb zenity, que permeti primer de tot escollir a l'usuari un directori (el directori  d'inici sempre ha de ser el directori personal de l'usuari que executa el programa) desprÚs escriure un nom de fitxer a crear dins d'aquest directori i finalment escolir una extensiˇ dins d'una llista. La llista serÓ de tipus "radiolist" i tindrÓ les segŘents opcions: 1) .php., 2) .sh, i 3) .conf. A continuaciˇ es mostrarÓ un quadre de diÓleg que permiti introduir un text que Ús desarÓ dins del fitxer escollit. El fitxer es crearÓ amb els permisos per defecte i l'usuari  haurÓ d'escollir  entre donar-li permÝs d'execuciˇ o no si el fitxer tÚ extensiˇ ".sh", utilitzant una finestra de tipus "Question Dialog". El programa finalitzarÓ enviant un 0 com a codi de retorn. El nom del script serÓ zen01.sh.

2- Fes un arxiu de guiˇ de l'interprets d'ordres del bash shell per l'usuari primari (root), que tingui un GUI utilitzant amb zenity, i que mostri un formulari que demani totes les dades necessÓries per crear un nou usuari. Un cop donades les dades, el programa crearÓ l'usuari, i enviarÓ a la pantalla un avÝs d'usuari creat.  El password de l'suari no s'ha poder veure quan s'escriu. El programa finalitzarÓ enviant un 0 com a codi de retorn. El nom del script serÓ zen02.sh.

3- Fes un arxiu de guiˇ de l'interprets d'ordres del bash shell per l'usuari primari (root), que tingui un GUI utilitzant amb zenity, i que permeti afegir una nova lÝnia al fitxer /etc/crontab. El programa haurÓ de demanar el minut, hora i dia a la qual s'haurÓ d'executar l'arxiu de guiˇ crontolat des de cron. Les hores poden ser les 00, 09, 15 i 21 (que es poden escollir des d'un men˙) i els minuts poden ser 00,20 i 40 (que es poden escollir des d'un men˙). El dia tambÚ s'ha de poder escollir des d'un calendari. TambÚ s'ha de poder escollir l'arxiu de guiˇ que s'executarÓ a l'hora i dia demanats. A continuaciˇ el nou fitxer /etc/crontab serÓ mostrar per pantalla. Al principi de tot, l'arxiu de guiˇ haurÓ de fer una c˛pia de seguretat de l'arxiu /etc/crontab de nom /etc/crontab.antic. El programa finalitzarÓ enviant un 0 com a codi de retorn. El nom del script serÓ zen03.sh.

4- Fes un arxiu de guiˇ de l'interprets d'ordres del bash shell per l'usuari primari (root), que tingui un GUI utilitzant amb zenity, i que permeti fer la c˛pia de seguretat de tots els fitxers que tinguin una extensiˇ que s'ha de demanar amb un "Text entry dialog" d'un directori que s'ha d'escollir amb un "File selection Dialog". Els fitxers s'han de copiar tots junts en ˙nic fitxer que desprÚs s'ha de comprimir. El nom del fitxer de backup s'ha de demanar amb un "Text entry dialog". S'ha d'afegir la data de creaciˇ amb l'ajut d'un "Calendar dialog". S'ha de demanar el directori a on es desa el backup amb l'ajut d'un "File selection dialog". El programa finalitzarÓ enviant un 0 com a codi de retorn. El nom del script serÓ zen04.sh.
 

5- Fes un arxiu de guiˇ de l'interprets d'ordres del bash shell, que tingui un GUI utilitzant amb zenity, que permeti primer de tot escollir a l'usuari el directori a on ha desat tots els seus arxiu multimŔdia (video i audio). La finestra haurÓ de tenir el tÝtol segŘent "Selecciona la carpeta a on has desat les teves canšons" i hauria de tenir una amplada de 500. El directori  d'inici sempre ha de ser el directori personal de l'usuari que executa el programa. Un cop escollit el directori, l'arxiu de guiˇ ha de mostrar una finestra amb una llista de tots els arxiu amb l'extensiˇ ".flv" (Flash Video --> Format dels fitxers del You Tube).  Un cop escollit el fitxer multimŔdia a reproduir, sortirÓ una pantalla amb el tÝtol" Escull volum" que permetrÓ a l'usuari escollir el volum inicial de reproducciˇ (entre 0 i 500) i a continuaciˇ es reproduirÓ el fitxer multimŔdia amb el programa vlc. Per poder fe aquesta part s'haurÓ de treballar amb l'opciˇ --scale del programa zenity.
El programa finalitzarÓ enviant un 0 com a codi de retorn. El nom del script serÓ zen05.sh.

6- Fes un arxiu de guiˇ de l'interprets d'ordres del bash shell per l'usuari root que mostri un formulari per realitzar la configuraciˇ bÓsica d'un servidor DHCP. El programa ha de fer les segŘents tasques:
El programa finalitzarÓ enviant un 0 com a codi de retorn. El nom del script serÓ zen06.sh.

7-  Fes un arxiu de guiˇ de l'interprets d'ordres del bash shell  per l'usuari root, en el qual se li demanin totes les dades necessÓries per crear un nombre N d'usuaris. El programa ha de:
El programa finalitzarÓ enviant un 0 com a codi de retorn. El nom del script serÓ zen07.sh.