.dsy:it. Pages (39): « First ... « 21 22 23 24 [25] 26 27 28 29 » ... Last »
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Sistemi operativi I (http://www.dsy.it/forum/forumdisplay.php?forumid=269)
-- Esame di laboratorio (Giugno 2007) - Domande (http://www.dsy.it/forum/showthread.php?threadid=31182)


Posted by Joliet Jake on 23-07-2008 22:14:

Originally posted by jaguaro
questa soluzione funziona ma è uno spreco di risorse..
il du non serve, devi solo calcolare quanti file sono..
per cui io farei
code:
find dir -type f | wc -w


hai perfettamente ragione

------------------
Originally posted by ste182
- calcolare lo spazio occupato da un utente (dai suoi files)

ho modificato lo script per calcolare lo spazio occupato da OGNI utente sul sistema.. sembra funzionare per un pò, dopo comincia a dire "out of space".. sapete dirmi perchè?
il codice è questo:

#!/bin/sh
sum=0
for id in $(cut /etc/passwd -d : -f 3); do
for item in $(find / -type f -user $id | xargs du | cut -f 1); do
sum=$(expr $sum + $item)
done
echo "dim. tot. dei files di utente $id: $sum Kb"
dome


è giusto credo sia dovuto al fatto che usi FOR dovrest magari usare while al posto di for

EDIT
ma se io mettessi in fondo a questo script con echo solo
$sum:$id
potrei poi fare così:

code:
sort -n -f : +1|tail -n 3


per risolvere questo quesito:
Trovare i 3 utenti che, sommando la dimensione dei loro
file, occupano piu` spazio nel sistema.


opuure sono io scemo?

__________________
In Blues We Trust


Posted by Joliet Jake on 24-07-2008 13:23:

passato ragazzi, 22 che bello.
se vi serve ecco la mia domanda.

metti in un file ar i file di testo che sono stati modificati più di 2 giorni fa e che hanno meno di 500 righe


soluzione mia corretta dall'errore che ho fatto e che Monga mi ha fatto capire di aver fatto:

code:
for FILE in $(find -type f -a -name "*.txt" -a -mtime +2) do if [$(wc -l $file) -lt 500]; then ar rc archivio.ar $file; fi; done;

notate che come mi ha detto anche Monga io ho semplificato dicendo che tutti i file di testo sono quelli con estensione "txt".
In realtà non so come sarebbe la risposta giusta, ma lui me l'ha data buona egualmente.
L'altro errore era che avevo messo "<" al posto di "-lt" e mi ridirezionava il 500 sul risultato di wc -_-'

comunque per avere un'idea della valutazione, con questi 2 errori ho preso 22.. menomale che è andata :)
in bocca al lupo ai prossimi

__________________
In Blues We Trust


Posted by ste182 on 24-07-2008 15:15:

Originally posted by Joliet Jake
passato ragazzi, 22 che bello.
se vi serve ecco la mia domanda.



soluzione mia corretta dall'errore che ho fatto e che Monga mi ha fatto capire di aver fatto:

code:
for FILE in $(find -type f -a -name "*.txt" -a -mtime +2) do if [$(wc -l $file) -lt 500]; then ar rc archivio.ar $file; fi; done;

notate che come mi ha detto anche Monga io ho semplificato dicendo che tutti i file di testo sono quelli con estensione "txt".
In realtà non so come sarebbe la risposta giusta, ma lui me l'ha data buona egualmente.
L'altro errore era che avevo messo "<" al posto di "-lt" e mi ridirezionava il 500 sul risultato di wc -_-'

comunque per avere un'idea della valutazione, con questi 2 errori ho preso 22.. menomale che è andata :)
in bocca al lupo ai prossimi


O.O ??
e così funzionava??

a me scritto così non funziona.. a parte che manca il test nell'IF.
cmq io ho dovuto scriverlo così per farlo andare:
#!/bin/sh
for $FILE in (find / -type f -name "*.txt" -mtime +2); do
if test $(wc -l $FILE | tr -s ' ' ' ' | cut -d ' ' -f 2) -lt 500
then ar rc archivio.ar $FILE
fi
done
exit 0

__________________
Live Fast, Die Fun


Posted by lackno on 24-07-2008 15:37:

altre domande:

trovare i 10 file piu' vecchi (per alcuni eran i 10 modificati piu' recentemente)

la soluzione giusta non la so ma ho preso 23 :D

parte kernel: modificare il metodo di allocamento memoria in modo che utilizzi worst fit


Posted by Gehur on 24-07-2008 15:50:

shell
per ogni utente trovare i 3 file più vecchi del sistema..

#!\bin\sh
for U in $(cut -d : -f 3 /ect/passwd); do
find(type / -type f -user $U| xargs ls -T| tail -3)
done

ls -T ordina i file in base alla data di creazione, cavoli inzialmente mi stavo scervellando per capire come ordinarli in base alla data,(cosa da pazzi) poi mi sono ricordato del -T..

parte kernel: modificare il metodo di allocamento memoria in modo che utilizzi worst fit (ma come cavolo si fa??, ci sarò stato più di un ora a cercare ma nulla :D)

totale 23 perchè il trentini che mi ha guardato la partizione successivamente mi ha iniziato a fare domande sulla partizione, tipo se era montata e se la dimensione era quella data..

ed io non ero preparato ma me la sono cavata, però mi ha messo 2 meno :(

in pratica dovevo usare df.. in bocca al lupo ragazzi


Posted by davene on 24-07-2008 17:39:

andata...26 ma SOLO GRAZIE A VOI! non sapevo quasi nulla dei comandi di minix ne tantomeno delle partizione!
domanda shell: trovare e archiviare con ar i file che occupano meno di 10K e che contengano al loro interno la parola "memory".
l'esercizio sul kernel non l'ho fatto perchè non avevo tempo..

GRAZIE ANCORA

__________________
Saluti - Davide


Posted by ste182 on 24-07-2008 21:40:

Originally posted by davene
andata...26 ma SOLO GRAZIE A VOI! non sapevo quasi nulla dei comandi di minix ne tantomeno delle partizione!
domanda shell: trovare e archiviare con ar i file che occupano meno di 10K e che contengano al loro interno la parola "memory".
l'esercizio sul kernel non l'ho fatto perchè non avevo tempo..

GRAZIE ANCORA

senza fare il kernel hai preso 26???
ma sul sito del prof c'è scritto che la parte di kernel serve per votazioni > 24...
bha, non ci sto capendo più nulla ahahaha


cmq il tuo esercizio lo farei così(ditemi se va bene):
find / -type f -size -10 | xargs grep -l "memory" | xargs ar rc archivio.ar

__________________
Live Fast, Die Fun


Posted by Gehur on 25-07-2008 09:51:

be avrà preso 28 nello scritto

l'esercizio è corretto :)


Posted by KIMMY on 25-07-2008 10:40:

Originally posted by Gehur
shell
per ogni utente trovare i 3 file più vecchi del sistema..

#!\bin\sh
for U in $(cut -d : -f 3 /ect/passwd); do
find(type / -type f -user $U| xargs ls -T| tail -3)
done

ls -T ordina i file in base alla data di creazione, cavoli inzialmente mi stavo scervellando per capire come ordinarli in base alla data,(cosa da pazzi) poi mi sono ricordato del -T..



se sei in una cartella ben definita basta fare ls -lt ed hai i file in ordine di data, ma farlo su tutto il sistema mi sa che e' un po' piu' complesso perchè ls -T te li ordina in base alla data ma per ogni cartella, non in generale su tutto il sistema... e così monga mi ha detto che una possibile soluzione potrebbe essere quella di usare il comando "stat" per avere la data dei file e poi ordinarli ... proverò e vedrò cosa ne viene fuori però se altri hanno qualche suggerimento non mi offendo mica :D


Posted by Gehur on 25-07-2008 12:23:

Originally posted by KIMMY
se sei in una cartella ben definita basta fare ls -lt ed hai i file in ordine di data, ma farlo su tutto il sistema mi sa che e' un po' piu' complesso perchè ls -T te li ordina in base alla data ma per ogni cartella, non in generale su tutto il sistema... e così monga mi ha detto che una possibile soluzione potrebbe essere quella di usare il comando "stat" per avere la data dei file e poi ordinarli ... proverò e vedrò cosa ne viene fuori però se altri hanno qualche suggerimento non mi offendo mica :D


be questo io no lo sapevo,se mi mi dici che è cosi ci credo, la schell me l'ha corretta il prof monga e non mi ha detto nulla a riguardo..


Posted by picchio on 25-07-2008 12:34:

Smile Domande fatte all' esame

Ciao ragazzi,
se vi può servire, vi scrivo le domande che mi sono state fatte ieri all' esame:

Script:
creare uno script che cambi l'estensione di un gruppo di file da .mp3 a .ogg

Kernel:
mandare una stampa a video ogni volta che viene rimosso un file;
inoltre stampare il suo I-node number

Ciao e buone vacanze a tutti!


Posted by marbliss on 25-07-2008 15:20:

Anche questo esame è andato, ecco le mie domande:

Script:
trovare il file più grande di tipo testo che abbia un numero di righe pari

Soluzione:

code:
#!/bin/sh sizef=0 for file in $(find / -type f -name '*.txt'); do nrrighe=$(wc -l $file | tr -d ' ' | cut -f 1 -d /) size=$(du $file | cut -f 1) if $(expr $(expr $nrrighe % 2) -eq 0 ); then if $(expr $size -gt $sizef); then sizef=$size filef=$file fi fi done echo "Il file di testo più grande con numero di righe pari è: echo $filef


Kernel:
cambiare la politica di allocazione della memoria in best fit

Indovinato: si deve cambiare il file /usr/src/servers/pm/alloc.c più esattamente la funzione alloc_mem dove viene usato la politica firts fit. Non l'ho fatto perché ero ultima e loro avevano fretta di andare via ma Monga mi ha datto 2 punti in più :-D


Posted by KIMMY on 25-07-2008 18:40:

Originally posted by Gehur
be questo io no lo sapevo,se mi mi dici che è cosi ci credo, la schell me l'ha corretta il prof monga e non mi ha detto nulla a riguardo..


Tralaltro -T stampa solo l'ora dei file, non li ordina per data... intendevi -t vero? :shock:


cmq meglio così, almeno abbiamo la certezza che non sempre è pignolo :D


Posted by Gehur on 26-07-2008 10:50:

no no..ho usato -T ma forse nemmeno se ne accorto..ho usato T perchè con t non capivo che faceva..cioè in toeria dovrebbe ordinare per data, ma in pratica non so.. invece con -T la stampa mi sembrava ordinata per data..

era alloc.c allora, e vabbe pazienza..


Posted by davene on 27-07-2008 11:05:

@ste182
si si..senza kernel..avevo 27 tra scritto e orale e 24 di laboratorio...fatto la media arrotondata all'intero successivo e quindi 26!
Si si..l'esercizio è corretto l'ho fatto anch'io cosi
GRAZIE DI NUOVO A TUTTI

__________________
Saluti - Davide


All times are GMT. The time now is 09:53. Pages (39): « First ... « 21 22 23 24 [25] 26 27 28 29 » ... Last »
Show all 571 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.