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 > Problemi
  Last Thread   Next Thread
Author
Thread    Expand all | Contract all    Post New Thread    Post A Reply
Collapse
nsajuve
.illuminato.

User info:
Registered: May 2006
Posts: 164 (0.02 al dì)
Location: Milano
Corso: Informatica
Anno: 3
Time Online: 1 Day, 5:57:03: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged
Problemi

cioa ragazzi, io dovrei fare l'esame a febbraio. ma ho 2 problemi :

in questo esercizio :

per ogni utente trovare il processo che occupa piu spazio in memoria

#!/bin/sh
echo $(cat /etc/passwd | cut -d ' ' -f 3) > utenti.txt
echo "" > processi.txt
for uid in $(cat utenti.txt);do
echo "$uid -> $(ps -axl| tr -s ' ' ' ' | cut -d ' ' -f 4, 8-15 | grep "^$uid"|cut -d ' ' -f 2-8 | sort -n | tail -1)" >> processi.txt
done;
cat processi.txt

nel file passwd cosa vado a leggere!? e in generale per leggere un file come faccio!?


questa parte :

"$uid -> $(ps -axl| tr -s ' ' ' ' | cut -d ' ' -f 4, 8-15 | grep "^$uid"|cut -d ' ' -f 2-8 | sort -n | tail -1)"

qualcuno mela puo spiegare in dettaglio!?

il mio problema è capire fondamentalmente questi esercizi che parlano di trovare qualcosa per un utente o per tutti gli utenti del sistema. per fare questo cosa dovrei sapere?

grazie per la vostra disponibilità

ciao

21-01-2009 11:54
Click Here to See the Profile for nsajuve Click here to Send nsajuve a Private Message Find more posts by nsajuve Add nsajuve to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
darkshadow
Are You From The Past?

User info:
Registered: Jul 2007
Posts: 485 (0.07 al dì)
Location: Milano
Corso: Informatica Magistrale
Anno: 1
Time Online: 13 Days, 13:38:56 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged
Re: Problemi

Originally posted by nsajuve
cioa ragazzi, io dovrei fare l'esame a febbraio. ma ho 2 problemi :

in questo esercizio :

per ogni utente trovare il processo che occupa piu spazio in memoria

#!/bin/sh
echo $(cat /etc/passwd | cut -d ' ' -f 3) > utenti.txt
echo "" > processi.txt
for uid in $(cat utenti.txt);do
echo "$uid -> $(ps -axl| tr -s ' ' ' ' | cut -d ' ' -f 4, 8-15 | grep "^$uid"|cut -d ' ' -f 2-8 | sort -n | tail -1)" >> processi.txt
done;
cat processi.txt

nel file passwd cosa vado a leggere!? e in generale per leggere un file come faccio!?


questa parte :

"$uid -> $(ps -axl| tr -s ' ' ' ' | cut -d ' ' -f 4, 8-15 | grep "^$uid"|cut -d ' ' -f 2-8 | sort -n | tail -1)"




allora:

con ps ti fai dare l'elenco di tutti i processi.
tr non me lo ricordo.
cut: della tabella dei processi ti prendi solo le colonne 4, 8,...,15 che sono delimitate da ' ' (spazio).
grep: prendi solo i processi del utente fissato nel for ad ogni ciclo.
cut per prendere di nuovo certe colonne.
sort: per ordinare i processi (in questo caso in ordine crescente).
tail: prendi solo il processo in coda (cioè quello che occupa + memoria).

dopo il tutto con >> processi.txt per salvarti il processo che occupa + memoria per ciascun utente.

da notare il doppio ">" (>> ) perche se metti solo > vai a riscrivere il file ogni volta.

per quanto riguarda la lettura di un file ci sono varie tecniche quella + semplice e la + usata è fare cat nome_file.

__________________
by Ð@rk§h@ÐØw

21-01-2009 13:57
Click Here to See the Profile for darkshadow Click here to Send darkshadow a Private Message Find more posts by darkshadow Add darkshadow to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
nsajuve
.illuminato.

User info:
Registered: May 2006
Posts: 164 (0.02 al dì)
Location: Milano
Corso: Informatica
Anno: 3
Time Online: 1 Day, 5:57:03: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

allora , grazie per la risposta, ma ho ancora qualche dubbio :

in questa parte : grep "^$uid" , perché metto ^?

qualcuno melo può spiegare?


grazie

01-02-2009 19:00
Click Here to See the Profile for nsajuve Click here to Send nsajuve a Private Message Find more posts by nsajuve Add nsajuve to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
edima
walkingman

User info:
Registered: May 2003
Posts: 129 (0.02 al dì)
Location: Milano
Corso: Diploma universitario di informatica
Anno: 3
Time Online: 1 Day, 8:03:43 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by nsajuve
allora , grazie per la risposta, ma ho ancora qualche dubbio :

in questa parte : grep "^$uid" , perché metto ^?

qualcuno melo può spiegare?


grazie


E' una "regular espression". Nelle regex il carattere ^ indica l'inizio della riga: significa: prendi tutte le righe dove la riga inizia con il valore della variabile $uid, che e' in questo caso e' lo user ID.

Guardati le regular expression (prova a usarle con le utility sed e awk), perche' sono la base per l'esecuzione di molti comandi.

Guarda anche manuali tipo questo: http://tldp.org/LDP/Bash-Beginners-Guide/html/

Ciao!

05-02-2009 23:11
Click Here to See the Profile for edima Click here to Send edima a Private Message Find more posts by edima Add edima to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
All times are GMT. The time now is 18:59.    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.062 seconds (56.73% PHP - 43.27% MySQL) con 26 query.