Activitats
Estes són les activitats de la unitat. Les sis primeres les fas pel teu compte, amb dificultat creixent, i la setena és la de la sessió presencial del 24 de novembre. Pots veure quan fer cada una en la planificació.
Pel que fa als sistemes: necessites una màquina Linux (la de la unitat 2 val) i un Windows amb PowerShell. Si en un moment determinat només tens un dels dos, fes l’activitat en eixe i completa l’altre quan puges; la sessió presencial es fa en el sistema que tingues assignat. Treballa sempre en màquines de proves.
Totes es lliuren en Aules, en la tasca corresponent, en un únic document (PDF, ODT o DOCX) amb el teu nom, més els scripts quan es demanen. No cal copiar els enunciats: numera les respostes. Els codis d’ordres i els scripts es copien com a text, no com a captura, tret que es demane una captura.
Activitat 1 · El teu primer script
Sección titulada «Activitat 1 · El teu primer script»Objectiu: crear i executar un script en Bash i en PowerShell, i veure amb els teus ulls què fan els permisos, la política d’execució i les cometes.
Què has de fer:
- Repassa les pestanyes «Executar un script» i «Cometes i expansió» del laboratori «Traçador d’scripts».
- En Linux, crea
presentacio.shamb shebang. Ha de guardar el teu nom ennom, el cicle enciclei els anys d’edat enanys, i mostrar tres línies: una frase amb les tres variables entre cometes dobles, la mateixa frase entre cometes simples i una tercera que incloga la data d’avui obtinguda amb$(date +%F). - Executa-la abans de donar-li permís d’execució i fes una captura de l’error. Després dona-li el permís i torna a executar-la.
- En Windows, crea
presentacio.ps1amb el mateix contingut (les tres variables, la frase entre cometes dobles i simples, i la data ambGet-Date). Si la política d’execució et bloqueja, fes una captura del missatge i corregix-ho amb l’ordre que no exigix ser administrador. - Respon: (a) Per què la frase entre cometes simples no mostra el valor de les variables? (b) Per què cal escriure
./presentacio.shi no noméspresentacio.sh? (c) Què hauria passat en Bash si haguessis escritanys = 17?
Què entregues: els dos scripts, les captures de l’error de permís (Linux) i del bloqueig de la política (Windows, si ha passat) i les respostes a (a), (b) i (c), en la tasca «Activitat 1» d’Aules.
Criteris que treballa: RA3.f
Dificultat: ★☆☆ · Temps estimat: 40 minuts
Activitat 2 · Traça a mà
Sección titulada «Activitat 2 · Traça a mà»Objectiu: predir què fa un script abans d’executar-lo, línia a línia, seguint les variables i els codis d’eixida.
Què has de fer:
-
Obri la pestanya «Traçador» del laboratori. Executa l’script «Nota» amb els paràmetres
10,7i3, i anota per a cada cas quina branca de l’ifse segueix. Executa «Suma» i anota, per a cada volta, el valor deii desuma. -
Ara fes els següents sense executar-los: construeix una taula amb una fila per línia executada i les columnes línia, variables després de la línia, eixida per pantalla i
$?.Script A
#!/bin/bashtotal=0for n in 4 7 10; doif [ $n -gt 5 ]; thentotal=$((total + n))fidoneecho "Total: $total"Script B, executat dues vegades en Linux:
./b.sh /etci./b.sh /carpeta_que_no_existix#!/bin/bashfitxer=$1ls "$fitxer" > /dev/null 2>&1codi=$?echo "ls ha tornat $codi"if [ $codi -ne 0 ]; thenecho "No es pot llistar"exit 4fiecho "Tot bé"Script C (repte)
#!/bin/bashn=10passos=0while [ $n -gt 1 ]; doif [ $((n % 2)) -eq 0 ]; thenn=$((n / 2))elsen=$((3 * n + 1))fipassos=$((passos + 1))doneecho "$passos" -
Executa els tres scripts de debò i compara amb la teua taula. Si alguna cosa no coincideix, explica per què t’has equivocat.
-
Respon: en l’script B, quin codi d’eixida té l’script en cada execució (el que tornaria
echo $?en acabar)?
Què entregues: les tres taules i les respostes de l’apartat 4, en la tasca «Activitat 2» d’Aules. Pots escriure-les a mà i fotografiar-les.
Criteris que treballa: RA3.f
Dificultat: ★☆☆ · Temps estimat: 45 minuts
Activitat 3 · Troba els errors
Sección titulada «Activitat 3 · Troba els errors»Objectiu: reconéixer i corregir els errors més freqüents en scripts de Bash i de PowerShell.
Què has de fer:
-
Practica les cinc primeres propostes de la pestanya «Troba l’error» del laboratori.
-
Este script de Bash ha de comptar els fitxers
.txtd’una carpeta i, si es demana, mostrar-los. Té cinc errors. Troba’ls tots, escriu en quina línia és cada un i per què falla, i entrega la versió corregida.#!/bin/bash# resum.sh · compta els fitxers .txt d'una carpeta# Ús: ./resum.sh <carpeta> [detall]carpeta = $1mode=$2if [ ! -d $carpeta ]; thenecho "No existeix la carpeta" >&2exit 2fitotal=0for f in "$carpeta"/*.txt; dototal=$((total + 1))if [ "$mode" -eq "detall" ]; thenecho "Fitxer: $f"fiecho "Total: $total" > resum.logProva la teua versió amb una carpeta que tinga un espai en el nom (
mkdir "Mis documents") i també amb una carpeta que no tinga cap fitxer.txt. -
Este fragment de PowerShell té tres problemes. Explica’ls i corregix-los:
Ventana de terminal param([string]$Carpeta, [int]$Minim = 5)$total = (Get-ChildItem $Carpeta -Filter *.txt).Countif ($total > $Minim) {Write-Host "Hi ha prou fitxers: " + $total} -
Cada un d’estos tres fragments falla per un motiu diferent. Explica per què i escriu la versió que funciona:
useradd -m anaexecutat per un usuari normal.New-LocalUser -Name "ana"dins d’un bucle que dona d’alta cinc usuaris (explica què fa i què s’ha d’afegir).schtasks /create /tn "Neteja" /tr "C:\Scripts\Neteja.ps1" /sc daily /st 03:00
Què entregues: un document amb les errades trobades (línia, motiu i correcció) i els scripts corregits, en la tasca «Activitat 3» d’Aules.
Criteris que treballa: RA3.f
Dificultat: ★★☆ · Temps estimat: 50 minuts
Activitat 4 · Un script amb paràmetres i validacions
Sección titulada «Activitat 4 · Un script amb paràmetres i validacions»Objectiu: escriure un script reutilitzable que rep dades de fora, les valida i informa del resultat amb codis d’eixida.
Què has de fer:
- Escriu
info.sh(Bash) iInfo.ps1(PowerShell). Han de rebre una ruta com a paràmetre i comportar-se així:- Si no hi ha cap paràmetre: mostrar com s’usa i acabar amb codi
1. - Si la ruta no existix: mostrar un missatge d’error (a l’eixida d’errors) i acabar amb codi
2. - Si és un fitxer: mostrar la mida en bytes, el nombre de línies i el nombre de paraules.
- Si és una carpeta: mostrar quantes entrades té i la mida total aproximada.
- En els dos casos correctes, acabar amb codi
0.
- Si no hi ha cap paràmetre: mostrar com s’usa i acabar amb codi
- Prova’ls amb quatre casos: sense paràmetre, amb una ruta inexistent, amb un fitxer de text i amb una carpeta.
- Després de cada execució, mostra el codi d’eixida (
echo $?en Bash;$LASTEXITCODEen PowerShell, després d’executar l’script). - Pista de laboratori: la pestanya «Condicions» t’ajuda amb
-fi-d, i «Paràmetres i read» amb$#i$1. - Afig una opció: si hi ha un segon paràmetre
-v, mostra a més la data de l’última modificació.
Què entregues: els dos scripts i una captura per cada un dels quatre casos amb el codi d’eixida visible, en la tasca «Activitat 4» d’Aules.
Criteris que treballa: RA3.c, RA3.f
Dificultat: ★★☆ · Temps estimat: 60 minuts
Activitat 5 · Analitza un log
Sección titulada «Activitat 5 · Analitza un log»Objectiu: extraure informació d’un fitxer de text amb ordres de filtratge i canonades, i convertir-la en un script.
Què has de fer:
-
Guarda este log com a
servei.log(còpia i apega el text):2026-11-17 08:58:02 INFO Servei iniciat2026-11-17 09:01:12 INFO Connexió de ana2026-11-17 09:03:40 ERROR No es pot connectar a la base de dades2026-11-17 09:03:41 WARN Reintentant connexió2026-11-17 09:03:45 INFO Connexió restablida2026-11-17 09:15:20 INFO Connexió de luis2026-11-17 09:47:09 WARN Disc al 85%2026-11-17 10:02:31 ERROR Fitxer de configuració no trobat2026-11-17 10:02:32 INFO S'usa la configuració per defecte2026-11-17 10:20:00 INFO Connexió de marta2026-11-17 10:41:55 ERROR Temps d'espera esgotat2026-11-17 10:41:56 WARN Reintentant connexió2026-11-17 10:41:59 INFO Connexió restablida2026-11-17 11:05:13 INFO Connexió de ana2026-11-17 11:30:48 WARN Disc al 88%2026-11-17 11:59:10 ERROR Disc ple2026-11-17 12:00:00 INFO Servei aturat -
Amb una ordre o canonada per a cada apartat, en Bash i en PowerShell (en PowerShell, si els accents ixen malament, afig
-Encoding UTF8aGet-Content):- a) Quantes línies d’
ERRORhi ha? - b) Mostra totes les línies que no són
INFO. - c) Quantes línies hi ha de cada nivell (
INFO,WARN,ERROR), de més a menys? - d) Mostra les dues últimes línies d’error.
- e) Mostra només el missatge (el text després del nivell) del primer error.
- f) Quantes línies hi ha per cada hora del dia?
- a) Quantes línies d’
-
Escriu un script (
informe_log.sh/InformeLog.ps1) que reba el fitxer i un nivell opcional (per defecteERROR), comprove que el fitxer existix i escriga eninforme.txtel nivell, quantes línies hi ha i les tres últimes. -
Respon: per què, en Bash,
grep error servei.logno troba cap línia i en PowerShellSelect-String error servei.logsí?
Què entregues: un document amb les ordres de l’apartat 2 (una per apartat i per shell), l’eixida de cada una i els dos scripts de l’apartat 3, més la resposta a la pregunta 4, en la tasca «Activitat 5» d’Aules.
Criteris que treballa: RA3.c, RA3.f
Dificultat: ★★☆ · Temps estimat: 60 minuts
Activitat 6 · Còpia, restauració i compressors
Sección titulada «Activitat 6 · Còpia, restauració i compressors»Objectiu: orientar-te per l’estructura de directoris, localitzar informació, restaurar una còpia comprovant-la i avaluar utilitats de gestió de la informació.
Què has de fer:
- Estructura de directoris. Fes una taula amb la ruta (en Linux i en Windows) on trobaries: la configuració del sistema, els registres (logs), els programes instal·lats, la carpeta personal d’un usuari, els fitxers temporals i els dispositius. Comprova en la teua màquina que existixen.
- Dades de prova. Crea les carpetes i uns fitxers: en Linux,
mkdir -p ~/proves/dades/textifor i in $(seq 1 20); do seq 1 20000 > ~/proves/dades/text/fitxer$i.txt; done. En Windows:New-Item -ItemType Directory -Force "$env:USERPROFILE\proves\dades\text" | Out-Nulli1..20 | ForEach-Object { 1..20000 | Set-Content "$env:USERPROFILE\proves\dades\text\fitxer$_.txt" }. - Localitzar. Amb
find/Get-ChildItem, llista els fitxers de la carpeta de més de 50 KB. Calcula la mida total ambdu -sho ambMeasure-Object. - Comprimir i comparar. Comprimix la carpeta
dadesamb tres formats (en Linux:tar.gz,tar.xzizip; en Windows:zipambCompress-Archivei, si ho instal·les ambwinget install 7zip.7zip,7z). Mesura per a cada format la mida i el temps (timeen Linux,Measure-Commanden PowerShell) i presenta una taula. Conclou quin triaries per a una còpia diària i per a un arxiu que només es guardarà. - Restaurar i verificar. Restaura una de les còpies en una carpeta diferent de l’original i comprova que és idèntica (
diff -ren Linux; comparantGet-FileHashde tres fitxers en Windows). Després esborrafitxer7.txtde l’original i recupera només eixe fitxer de la còpia. - Sincronitzar. Usa
rsync -av(Linux) orobocopy /E(Windows) per a copiardadesa una carpetacopia. Modifica un sol fitxer, repeteix la còpia i comprova que només es copia el que ha canviat (en Linux, mira-ho primer amb--dry-run). En Windows, anota el codi d’eixida derobocopyen cada execució i explica què significa.
Què entregues: un document amb la taula de l’apartat 1, les ordres i les eixides dels apartats 3 a 6, la taula comparativa de compressors amb la teua conclusió i una reflexió de 4-5 línies sobre per què cal provar les restauracions, en la tasca «Activitat 6» d’Aules.
Criteris que treballa: RA3.b, RA3.c, RA3.e, RA3.g
Dificultat: ★★★ · Temps estimat: 90 minuts
Activitat 7 · Scripts d’automatització i tasca programada (presencial)
Sección titulada «Activitat 7 · Scripts d’automatització i tasca programada (presencial)»Objectiu: escriure, provar i programar els tres scripts d’administració de la unitat, i comprovar que la tasca s’executa sola.
Es fa individualment, durant la sessió presencial del 24 de novembre, en el sistema operatiu del teu equip (Linux amb Bash o Windows amb PowerShell). Els scripts són els de la pàgina 3; has d’entendre’ls i provar-los, no només copiar-los.
Què has de fer:
- Còpia de seguretat. Escriu i prova
backup.shoBackup.ps1sobre una carpeta de prova amb alguns fitxers. Comprova el fitxer comprimit amb la data en el nom. - Alta massiva. Prepara un fitxer
usuaris.txtamb 5 noms i escriu i provacrear_usuaris.sh(ambsudo) oCrearUsuaris.ps1(en una consola d’administrador). Comprova que els comptes existixen (getent passwdoGet-LocalUser). - Comprovació del disc. Escriu i prova
comprovar_disc.shoComprovarDisc.ps1. Executa-la amb un llindar baix (per exemple1) per a veure l’avís. - Programació. Programa la comprovació del disc perquè s’execute cada 5 minuts: amb
crontab -e(línia*/5 * * * *amb ruta absoluta i redirecció) o amb el Programador de tasques /schtasks(acciópowershell.exeamb-File). Espera, com a mínim, a dos execucions i comprova-ho en el registre. - Documenta. Reflexió breu (3-4 línies): quina altra tasca del teu dia a dia automatitzaries amb un script semblant, i per què.
Què entregues: abans d’acabar la classe, en la tasca d’Aules «Activitat UP3 — Scripts d’automatització i tasca programada»: un document amb
- Apartat 1: l’script de còpia i una captura del fitxer comprimit generat;
- Apartat 2: l’script d’altes i una captura dels usuaris creats en el sistema;
- Apartat 3: l’script de comprovació del disc i una captura de la seua execució;
- Apartat 4: una captura de la tasca programada (
crontab -lo la finestra del Programador de tasques) i del registre que demostre que s’ha executat automàticament almenys dues vegades; - Apartat 5: la reflexió.
Adjunta també els arxius .sh o .ps1.
Criteris que treballa: RA3.c, RA3.e, RA3.f
Dificultat: ★★☆ · Temps estimat: durant la sessió presencial (2-4 h)
Esta web no usa cookies ni recoge datos personales. Tu navegador solo guarda, en tu propio equipo, algunas preferencias: el tema claro u oscuro, el estado del menú y, en los laboratorios, la última pestaña abierta y el tamaño de letra.