|
|
|
|
 |
|  |
 |
nsajuve |
| Problemi |
21-01-2009 11:54 |
|
 |
nsajuve |
.illuminato.
Registered: May 2006
Posts: 164 (0.02 al dì)
Location: Milano
Corso: Informatica
Anno: 3
Time Online: 1 Day, 5:57:03: [...]
Status: Offline
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 |
|
|
|  |
 |
darkshadow |
| Re: Problemi |
21-01-2009 13:57 |
|
 |
darkshadow |
Are You From The Past?

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
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 |
|
|
|  |
 |
nsajuve |
| allora , grazie per la risposta, ma ho ancora qual ... |
01-02-2009 19:00 |
|
 |
nsajuve |
.illuminato.
Registered: May 2006
Posts: 164 (0.02 al dì)
Location: Milano
Corso: Informatica
Anno: 3
Time Online: 1 Day, 5:57:03: [...]
Status: Offline
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 |
|
|
|  |
 |
edima |
| [QUOTE][i]Originally posted by nsajuve [/i]
... |
05-02-2009 23:11 |
|
 |
edima |
walkingman

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
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 |
|
|
|  |
 |
| All times are GMT. The time now is 18:59. |
|
|
 |
|
 |
|
|
|  |
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
|
|
|
|
|
|