Dsy Network www | forum | my | didattica | howto | wiki | el goog | stats | blog | dona | rappresentanti
Homepage
 Register   Calendar   Members  Faq   Search  Logout 
.dsy:it. : Powered by vBulletin version 2.3.1 .dsy:it. > Didattica > Corsi N - Z > Sistemi operativi I > [LAB] Esercizi Shell Svolti
  Last Thread   Next Thread
Author
Thread    Expand all | Contract all    Post New Thread    Post A Reply
Collapse
Spr1gg4N
.illuminato.

User info:
Registered: Sep 2007
Posts: 162 (0.03 al dì)
Location:
Corso:
Anno:
Time Online: 1 Day, 18:40:54 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged
[LAB] Esercizi Shell Svolti

Ciao a tutti volevo proporre di creare un thread (questo :D) con su lo svolgimento degli esercizi di scripting proposti sul wiki (e perchè no, magari anche di altri) così da dare una mano a chi deve preparare il laboratorio.

Elenco degli esercizi proposti sul wiki:

*Trovare l'utente col minor numero di file nel sistema
* Trovare l'utente col file piu' recente nel sistema
* Elencare i tre utenti che hanno il maggior numero di file nel sistema
* Trovare tutti i file col numero dispari di righe (quindi sono i file di testo)
* Trovare tutti i file modificati di venerdi' (sia un venerdi' particolare che di venerdi' in generale)
* Trovare tutti i link simbolici nel filesystem
* Trovare tutti i file di testo che non siano script
* Contare quanti file di manuale ci sono nel filesystem
* A quante “pagine” (una pagina equivale a circa 1500 caratteri) corrispondono tutti i file di testo del filesystem?
* Quali file ha modificato l'utente XY in una specifica data?
* Quali file di testo ha modificato l'utente XY nell'ultimo anno?
* Qual'e' l'utente che ha modificato piu' file nell'ultimo anno?
* Calcolare il numero di righe totali che ha scritto sul filesystem un certo utente nell'ultimo mese
* Calcolare il rapporto tra il numero di file nel filesystem (o in una directory specificata) e lo spazio occupato
* Calcolare il rapporto tra il numero di file nel filesystem (o in una directory specificata) e lo spazio occupato ESCLUDENDO gli hardlink
* Quanta memoria occupa il processo piu' grande?

12-08-2009 11:04
Click Here to See the Profile for Spr1gg4N Click here to Send Spr1gg4N a Private Message Find more posts by Spr1gg4N Add Spr1gg4N to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Spr1gg4N
.illuminato.

User info:
Registered: Sep 2007
Posts: 162 (0.03 al dì)
Location:
Corso:
Anno:
Time Online: 1 Day, 18:40:54 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Spero che qualcuno mi corregga se ho fatto qualche cavolata :D

* Trovare tutti i file col numero dispari di righe (quindi sono i file di testo)



code:
#!/bin/sh TEMP=temp echo "Calculating..." & (find / -type f | xargs wc -l 2>/dev/null | sed s/^\ *// > $TEMP) echo -e "LINES\t\tFILE" echo "--------------------------------------------" while read line; do LC=$(echo $line | cut -f 1 -d " ") NAME=$(echo $line | cut -f 2 -d " ") PAIR=$(expr $LC % 2) if [ $PAIR -ne 0 ]; then echo - e "$LC\t\t$NAME" fi done < $TEMP rm $TEMP


Ho utilizzato un file temporaneo altrimenti mi andava in "Out of space"....e direi anche giustamente dato che i file trovati da find / sono molti....ma la mia domanda è: è corretto fare in questo modo? Altrimenti ora come ora non saprei come farlo....
Se il find ritornasse pochi file allora avrei potuto anche fare solo un for che ciclava sui risultati del find....ma nel caso del find / questa è l'unica soluzione che mi viene in mente :D


* Trovare tutti i file di testo che non siano script

code:
#!/bin/sh TEMP="$(pwd)/temp" echo "Calculating..." & (find / -type f | grep -v '^'"$TEMP"'$' > $TEMP) while read line do FILE=$(echo $line) if [ "$(head -1 $FILE)" != "#!/bin/sh" ]; then echo $FILE fi done < $TEMP rm $TEMP


* Trovare tutti i link simbolici nel filesystem

code:
#!/bin/sh for LINK in $(find / -type l); do echo $LINK done


In questo script non è stato necessario utilizzare un file temporaneo perchè tanto i link simbolici che ho trovato sono solo 2.

*Trovare l'utente col minor numero di file nel sistema

code:
#!/bin/sh echo -e "USER\t\tUID\t\t#FiLES" echo "-----------------------------------------------" MINUSER=$(head -1 /etc/passwd | cut -f 1 -d : ) MINUID=$(head -1 /etc/passwd | cut -f 3 -d : ) MINFILES=$(find / -user $MINUID | wc -l) while read line; do USER=$(echo $line | cut -f 1 -d : ) UID=$(echo $line | cut -f 3 -d : ) if [ "$UID" -eq "$MINUID" ]; then echo -e "$MINUSER\t\t$MINUID\t\t$MINFILES" continue fi FILES=$(find / -user $UID | ec -l) fi [ "$MINFILES" -ge "$FILES" ]; then MINFILES=$FILES MINUSER=$USER MINUID=$UID fi echo -e "$USER\t\t$UID\t\t$FILES" done < /etc/passwd echo "\nMINORE:\n-----------------------------------------------" echo -e "$MINUSER\t\t$MINUID\t\t$MINFILES"


In questo esercizio stampo anche tutti gli utenti, i relativi UID e il relativo numero di files così da avere un riscontro col risultato finale (l'utente col minor numero di files)

* Elencare i tre utenti che hanno il maggior numero di file nel sistema

code:
#!/bin/sh TEMP="$(pwd)/temp" while read line; do USER=$(echo $line | cut -f 1 -d : ) UID=$(echo $line | cut -f 3 -d : ) FILES=$(find / -user $UID | wc -l) echo -e "$FILES $USER" >> $TEMP done < /etc/passwd sort -nr $TEMP | head -3 rm $TEMP

Last edited by Spr1gg4N on 07-09-2009 at 10:40

19-08-2009 17:25
Click Here to See the Profile for Spr1gg4N Click here to Send Spr1gg4N a Private Message Find more posts by Spr1gg4N Add Spr1gg4N to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
mark
.grande:maestro.

User info:
Registered: Oct 2003
Posts: 783 (0.10 al dì)
Location:
Corso: F49
Anno: finito!
Time Online: 8 Days, 18:34:33 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

* Trovare l'utente col file piu' recente nel sistema

non ho trovato di meglio per ora

code:
#!/bin/sh find / -type f -exec stat -atime {} \; > atime.tmp find / -type f -exec stat -uid {} \; > uid.tmp paste -d ' ' atime.tmp uid.tmp | sort +0 -n rm *.tmp

__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....

Last edited by mark on 02-09-2009 at 10:58

02-09-2009 10:55
Click Here to See the Profile for mark Click here to Send mark a Private Message Find more posts by mark Add mark to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
All times are GMT. The time now is 07:52.    Post New Thread    Post A Reply
  Last Thread   Next Thread
Show Printable Version | Email this Page | Subscribe to this Thread | Add to Bookmarks

Forum Jump:
Rate This Thread:

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
 

Powered by: vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento | Licenze | Thanks | Syndacate
Pagina generata in 0.029 seconds (80.58% PHP - 19.42% MySQL) con 29 query.