.dsy:it. Pages (39): « First ... « 14 15 16 17 [18] 19 20 21 22 » ... 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 plafo on 27-01-2008 18:59:

Originally posted by mjfan80
dopo provo a fare quell'esercizio e ti dico

cmq con il grep senza l'opzione -i dovrebbe essere CASE SENSITIVE
quindi se tu fai grep -i "copyright" dovresti fare la ricerca in maniera non case sensitive come richiesto

ma all'esame potremo usare mined?
io fino ad ora ho usato quello




ok grazie
io ho provato lab solo a settembre e si usava elvis....
ho provato con perEsame.qcow e mi da lo stesso errore!
esistono soluzioni alternative????


Posted by bill76 on 27-01-2008 19:00:

Originally posted by plafo
non so quale sia quella che si usa all'esame ma il tuo stesso problema l'ho avuto durante l'esame!!!!
avevo un esercizio simile al tuo dove dovevo cercare la parola copyright all'interno dei file e mi ha dato lo stesso errore che hai segnalato mentre a casa funzionava. Ora provo anch'io a scaricare perEsame.qcow e vediamo che viene fuori.

Domanda:

-calcolare la somma della dimensione dei file eseguibili che hanno all'interno la parola copyright non sensitive.

Come faccio ad effettuare una ricerca in modo non sensitive oppure al contrario sensitive?



Grazie


Scusate come faccio a sapere se un file è eseguibile?
Lo cerco in /bin ?
Grazie mille

__________________
Poca osservazione e molto ragionamento portano all’errore,
molta osservazione e poco ragionamento conducono alla verità


Posted by mjfan80 on 27-01-2008 19:38:

per ecercare un eseguibile (però è stato detto più volte) fai così

code:
find / -type f | xargs ls -lF | tr -s ' ' ' ' | cut -d ' ' -f 5,9 | grep "\*$"


dove ls -F mette in fondo al nome del file alcuni simboli... mette un * se è eseguibile
qunidi con tr ' ' ' ' comprimo tutti gli spazi
con cut, con delimitatore lo spazio (-d ' ') selezioni i csmapi 5 e 9 (PID e SIZE) e poi estraggo le linee che hanno * alla fine (devo mette \ davanti a * per farlo interpretare bene... e il $ significa "cerca in fondo alla riga"

__________________
Heal The World
Just Because You Read It In A Magazine Or You See It On A Tv Scren Don't Make It Factual


Posted by Babbuzzo on 27-01-2008 20:18:

Originally posted by mjfan80
con man rev non succede nulla
e nemmeno cercando sul sito di minix tra le man

http://www.minix3.org/manpages/

rev non esiste


Esiste

Non c'è un manuale del rev, per questo è nella documentazione del sito di laboratorio.

1 - LINK
2 - ESEMPIO

__________________
Tommy: signor o'neill...
Micky: cazzo parli? kama micky
Tommy:come va?
Micky: beh dazza ci pai ma cavalli, sai...[...] porcocul! cicco zisiloi! sei grosso! hey babbuzzi:pazo grosso!


Posted by mjfan80 on 27-01-2008 20:26:

Originally posted by plafo

Domanda:

-calcolare la somma della dimensione dei file eseguibili che hanno all'interno la parola copyright non sensitive.

Grazie


ho provato questa soluzione
sembra funzionare, correggetela se vedete errori

code:
1 #!/bin/sh 2 for ESEG in $(find / -type f | xargs ls -lF | tr -s ' ' : | cut -d : -f 5,9 | grep "\*$"); do 3 PROG=$(echo $ESEG | cut -d : -f 2) 4 SIZE=$(echo $ESEG | cut -d : -f 1) 5 if grep -is copyright $PROC: then 6 SUM=$(exec $SUM + SIZE) 7 fi 8 done 9 echo "somma degli eseguibili con l'occorrenza di parola copyright = $SUM KB"


2: qui è bella lunga... come detto prima ls -F mette in fondo al nome del file una * se è eseguibile
2: tr -s ' ' : sostituisce gli spazio con i :
2: cut... l'opzione -d sceglie il delimitatore (i due punti) e -f scegli i campi 5 e 9 (size e nome file)
2: con il grep cerchi le occorrenze degli * nelle righe, con $ gli dici "inj fondo alla riga", * deve essere messo dopo una \ per essere correttamente interpretato
3: metto in PROG la seconda parte della riga appena trovata, quindi il nome file
4: stessa cosa ma con il size
5: cerco in ogni processo l'occorrenza della parola copyright... questo è particolare, perchè if, se non ho capito male, fa l'operazione dopo il then se lo stato dell'istruzione dopo l'if restituisce 0 (che in linux significa successo)... grep resituisce 0 se trova l'occorrenza... quindi questo comando "grep copyright file" da zero se in file c'è un'occorrenza della stringa copyright.... l'opzione -i dice "NON CASE SENSITIVE", l'opzione -s sopprime l'outpus... ci interessa solo lo stato della funzione non l'output
6: se trovga occorrenza fa la somma

__________________
Heal The World
Just Because You Read It In A Magazine Or You See It On A Tv Scren Don't Make It Factual


Posted by plafo on 28-01-2008 08:52:

for vs while

leggendo nelle pagine precedenti di problemi con l'utilizzo di for (in caso di ciclo su tanti file può andare in out of space) ho provato a "convertire" i vari script fatti introducendo while ma non mi è molto chiaro il funzionamento:
ad esempio....

for FILE in $(find / -type f -size +10 | xargs du -s); do
echo $FILE
done



come potrebbe essere tradotto utilizzando il while????



grazie


Posted by mjfan80 on 28-01-2008 19:20:

Originally posted by Assochespasso
Okkio che così trovi anche tutte le cartelle e file nascosti ( del tipo .cartella o .file).
Ho fatto uno script simile al tuo, escludendo cartelle e file nascosti:

find / -type f -name *.* | tr -s '/' ' ' | rev | cut -d ' ' -f 1 | rev | grep -v "^\." | rev | cut -d '.' -f 1 -s | rev | sort | uniq -c

find / -type f -name *.* cerco tutti i file che contengono un punto nel nome del file (i file trovati sono completi di path ad es. /root/prova/file)
tr -s '/' ' ' spazi al posto di /
rev stampo il nome del file al contrario
cut -d ' ' -f 1 estraggo il primo campo (è il nome del file al contrario). In questo modo ho il nome del file senza path
rev ristampo il nome del file "dritto"
grep -v "^\." escludo tutti i file che INIZIANO con un punto (sono quelli nascosti)
rev non lo ripeto più
cut -d '.' -f 1 -s estraggo il primo campo. Così ho l'estensione del file
rev
sort ordino le estensioni in ordine alfabetico, così posso eliminare le ripetizioni con uniq
uniq -c per ogni estensione ho il numero di ripetizioni



io ho provato a rifarlo un pochino
non capisco l'utilità di mettere il -name -name *.*, secondo me è meglio farlo dopo... bho forse si capisce meglio
cmq l'ho riscritto così, con uno script, in modo che stampi alla fine anche il numero di estensioni (quella linea di codice dice il numero di file per ogni estensione, non il numero di estensioni

code:
#!/bin/sh find / -type f | rev | cut -d / -f 1 | rev | grep -v "^\." | grep "\." | rev | cut -d '.' -f 1 | sort | uniq –c >> temp.txt echo "queste sono le estensioni del sistema e il numero di file ad esse associate:" cat temp.txt echo "nel sistema ci sono $(wc -l temp.txt | tr - s ' ' : | grep -d : -f 2) estensioni" rm temp.txt

__________________
Heal The World
Just Because You Read It In A Magazine Or You See It On A Tv Scren Don't Make It Factual


Posted by Liumberg on 29-01-2008 05:56:

scusate la mia ignoranza..

perchè mai un ciclo for semplicissimo tipo:

for ((I=0; I<10; I++));do
echo "ciao"
done

da il seguente errore:
Syntax error: Bad for loop variable

forse perchè uso sh e non bash?
minix all'esame cosa ha?sh o bash?

grazie


Posted by mjfan80 on 29-01-2008 07:32:

perchè il for non si fa così, che io sappia

ma for i in lista
do

done

ho detto una cazzata, scusate
con (( )) si può usare anche una sintassi così proposta

__________________
Heal The World
Just Because You Read It In A Magazine Or You See It On A Tv Scren Don't Make It Factual


Posted by bullet on 29-01-2008 09:12:

Ciao A Tutti...

C'è qualche bravissima simpaticissima intelligentissima persona che mi puo spigare bene come si fa ad aggiungere 10 utenti da file.

il file che viene passato contiene solo nomi oppure è della forma di etc/passwd ??

i dati passati oltre a modificare etc/passwd , dove mettono la password ? in etc/shadow?

perchè se apro etc/shadow con elle oppure elvis non c'è dentro nulla?

vi sarei immensamente grato se mi rispondete....

GRazie mille a tutti cmq per questo thread..
ciao ciao


Posted by mjfan80 on 29-01-2008 09:17:

lo script è ben proposto qualche post indietro
il file contiene questo

nomeutente gruppo directory home

esattamente quello che va passato a "adduser", che fa tutto lui, cioè aggiorna lui sia /etc/passwd sia /etc/shadow
(posto ovviamente che l gruppo esista)

__________________
Heal The World
Just Because You Read It In A Magazine Or You See It On A Tv Scren Don't Make It Factual


Posted by bullet on 29-01-2008 09:21:

Grazieee mille mi metto al lavoro per provare hiihh


Posted by bill76 on 29-01-2008 20:08:

Qualcuno può postare le domende di laboratorio fatte a Settembre?

Grazie mille

__________________
Poca osservazione e molto ragionamento portano all’errore,
molta osservazione e poco ragionamento conducono alla verità


Posted by mjfan80 on 29-01-2008 21:21:

ho provato a fgare l'esercizio di
"per ogni utente trova l'occupazione in memoria" usando il while al posto del for, per il find

ma non mi va, o meglio, va, ma l'output no

code:
#!/bin/sh for UID in $(cut /etc/passwd -d : -f 3); do echo "sto calcolando lo spazio per l'utente $UID" SUM=0 find / -type f -user $UID | while read FILE; do echo "file = $FILE" SIZE=$(ls -l $FILE | tr -s ' ' ' ' | cut -d ' ' -f 5) echo "SIZE=$SIZE" SUM=$(expr $SUM + $SIZE) echo "sum = $SUM" done echo "l'utente $UID occupa in totale $SUM Kb" echo "size = $SIZE sum= $SUM" done



escludendo che il SIZE era più facile trovarlo con du
ma come mai l'esecuzione logica va (infatti mi elenca ogni utente, ogni file dell'utente e mano a mano vedo il sum aumentare) ma poi alla fine mi stampa
SUM = 0 SIZE = (non stampa nulla)
come se il while fosse una funzione, che ha variabili interne

perchè???

__________________
Heal The World
Just Because You Read It In A Magazine Or You See It On A Tv Scren Don't Make It Factual


Posted by Liumberg on 30-01-2008 07:49:

scusate..
sto cercando di risolvere il problema "out of space" dei cicli FOR
usando while,il problema è che il sistema sembra dimenticare il contenuto delle variabili che vengono usate appena si esce da ciclo

nel seguente script (calcola lo spazio occupato dall'utente root) il valore della variabile TEMP alla fine è sempre 0.


TEMP=0
find ./ -type f -user root|xargs du|cut -f 1|while read FILE
do
TEMP='expr $TEMP \+ $FILE'
done
echo "occupazione utente root : $TEMP"

qualcuno sa aiutarmi?
ho paura che domani mi prendo una denuncia per aggressione..


All times are GMT. The time now is 10:14. Pages (39): « First ... « 14 15 16 17 [18] 19 20 21 22 » ... Last »
Show all 571 posts from this thread on one page

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