.dsy:it. Pages (39): « First ... « 17 18 19 20 [21] 22 23 24 25 » ... 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 15-02-2008 12:55:

Re: utenti

Originally posted by marcolino78
ciao gente, potete fare lo scriptino per trovare per ogni utente il processo in esecuzione che occupa maggior spazio in memoria???
Ho visto che c'è per la dimensione dei file ma non sono riuscito per i processi.

help.

Grazie.

Soprattutto, qualcuno ha qualche sito o manuale da consigliarmi per esercizi minix?
Grazie ancora.




dai un'occhiata alle prime pagine di questo thread....dovresti trovare tutte le risposte che cerchi :)


Posted by Bloom on 18-02-2008 11:16:

Originally posted by n3o
pensate che in linux quel diavolo di programma per trovare i file eseguibili maggiori di 5k si risolve solo così:

find / -type f -size +5 -perm /111 o
find / -type f -size +5 -perm +111 (per versioni vecchie di find)

FINE!!! Ma il find del minix è uno scandalo :evil:

@NoWhereMan: buona la regexp, ma effettivamente non è da parte dei prof molto corretto farcele usare perchè non sono state spiegate!!!
Io sono convinto che l'esercizio incriminato loro sono convinti si possa fare con il find (ma in Minix non è vero! :evil: )


si puo fare:
find / -type f -perm -111 -size +10


Posted by Bloom on 18-02-2008 11:41:

Originally posted by n3o
@imperator
Quando passwd richiede la password tu scrivila! è NORMALE che non si veda a video :D:D:D

Ottimo, ho modifica anche il mio post per sicurezza.
L'interpretazione dell'esercizio rimane libera, consiglio vivamente di chiedere spiegazioni più particolari al prof all'esame.
Per quanto riguarda tutti i casi di permesso, auguroni!

Ho trovato l'opzione -F di ls che stampa un asterisco dopo il nome di un file se esso è eseguibile !!!!!

Trovare tutti i files eseguibili > 5k e evidenziando i 5 più grandi SOLUZIONI DEFINITIVA TESTATA!

find / -type f -size +10 | xargs ls -lF | grep "\*$" | tr -s ' ' ' ' | cut -d ' ' -f 5,9 | sort -n | tail -5

Spiegazione:
1) find / -type f -size +10 => trova tutti i file di dimensione > 5KB (-size si riferisce a blocchi da 512 byte)
2) xargs ls -lF => per ogni file (riga del find) stampa le sue info estese mettendo un asterisco in fondo alla riga se esso è eseguibile
3) grep "\*$" => cerca quelle righe che hanno un asterisco (\*) prima della fine della riga ($)
4) tr -s ' ' ' ' => comprimi tutti gli spazi contigui in uno solo
5) cut -d ' ' -f 5,9 => estrai la 5^ e 9^ colonna separate da spazio (dimensione e nome file)
6) sort -n => ordina le righe numericamente (secondo la 1^ colonna per default, in questo caso la dimensione del file)
Ii passaggi 4 e 5 sono fondamentali, se no il sort non funziona bene!
7) tail -5 => estrai solo le ultime 5 righe (i file maggiori nel nostro caso)

Provate ogni singolo paso in successione per capire bene i passaggi e controllate con il man dei vari comandi il significato delle opzioni che ho usato.
Tranquilli, se capite questo capirete ogni altro esercizio!!!


Questo è piu semplice e funzia:
find / -type f -perm -111 -size +10|xargs du |sort -nr| -head -5


Posted by Bloom on 19-02-2008 11:15:

Originally posted by n3o
Ehm, sono riuscito a farlo ma è decisamente complicato...
code:
#!/bin/sh SUM=0 for UID in $(cat /etc/passwd | cut -d : -f 3); do for PROCSIZE in $(ps alx | tr -s ' ' ' ' | cut -d ' ' -f 4,8 | grep "^$UID" | cut -d ' ' -f 2); do SUM=$(expr $SUM + $PROCSIZE) done echo "Utente $UID : $SUM KB di processi in memoria" SUM=0 done

Credo di dovervi delle spiegazioni riguardo alla riga più lunga:
  • ps alx => stampa tutti i processi in formato lungo
  • tr -s ' ' ' ' => comprimo tutti gli spazi contigui in un solo spazio (fondamentale, altrimenti non funziona il cut)
  • cut -d ' ' -f 4,8 => estrai la 4^ e l'8^ colonna (che dopo tr sono separate da un solo spazio) che sono l'UID del proprietario e la dimensione (le ho trovate osservando il comportamento dei comandi precedenti, non c'è un manuale su come farlo!)
  • grep "^$UID" => cerca l'UID interessato a partire dall'inizio della riga (potrebbe confondersi con la dimensione di un processo)
    Ricordo che le colonne ora avranno il formato "0 689" ovvero UID + spazio + SIZE
  • cut -d ' ' -f 2=> Una volta ristretto il campo dell'utente estraggo la sola colonna dei SIZE per poi sommarli tutti
Create un nuovo utente e fate girare lo script con esso, altrimenti tutti i processi compaiono di proprietà di root.
Purtroppo avere riscontri precisi è difficile perchè non si riesce a beccare gli esatti processi in esecuzione durante lo script, quindi fare un controllo con ps alx dopo l'esecuzione non ha molto senso!

Come sempre se qualcuno ha una soluzione più semplice ben venga! (testatela prima!!!)



Guarda, io ho fatto cosi e funziona:
#!/bin/sh

sum=0

for utente in $(cat /etc/passwd| cut -d " " -f 3);do
for proc in $(ps -axl | awk '{print $3,$7}'| grep -l "^$utente"|cut -d " " -f 2); do
sum=$( expr $sum + $proc)
done
echo "utente $utente occupa $sum"
done


Posted by Gehur on 06-05-2008 19:38:

ragazzi ma per passare sto benedetto esame oltra a saper partizionare, bisogna sapere usare bene i comandio find, grep, xargs,exec, tail, cut...o mi sbaglio???


Posted by mjfan80 on 07-05-2008 07:42:

Originally posted by Gehur
ragazzi ma per passare sto benedetto esame oltra a saper partizionare, bisogna sapere usare bene i comandio find, grep, xargs,exec, tail, cut...o mi sbaglio???

non solo quelli, anche se sono sicuramente quelli essenziali
devi saper fare tutti (o quasi) gli esercizi che trovi nel forum

__________________
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 Gehur on 07-05-2008 17:46:

mi metterò sotto allora, visto che parto da zero..


Posted by Gehur on 18-05-2008 12:05:

mi son letto tutto il thred...e posso dire che gli script mi fanno davvero paura...

il comando shell alla fine dovrebbe essere un insieme di 3, 4 funzioni max messe in pipe, ma lo script, cavoli mi sembra un gran casino,ad esempio come faccio a farlo ripete ogni vernerdi??

poi non ho capito bene la storia della bash, il find funziona in maniera diversa rispetto a casa??

un ultima cosa, come faccio a vedere le directory,se uso il comando ls non mi visualizza bin,usr ecc....


Posted by Bloom on 18-05-2008 21:34:

per prima domanda:vai sul file crontab e lo modifichi.
Fai man 5 crontab e ti dice come deve essere editato.
Comunque se vai sulla preparazione degli esami di Trentini c'è un esempio.
Il find funziona in maniera diversa non perche viene usata la bash ma perche tronca le stringhte(troppo lunghe perchè l'immagine usata per l'esame è piu grossa).
La soluzione è di ridirigere tutto su un file.
Ad esempio:
find / -name pippo -type f>prova.txt
cerca tutti i file che si chiamano pippo e salva su prova .txt
se poi ad esempio devi archiviarli fai:
xargs tar xvf $(cat prova.txt) prova.tar.
Così sei sicuro che i path non vengono troncati.

Se intendi sapere directory corrente il comando è pwd


Posted by Gehur on 19-05-2008 11:17:

be grazie per le risposte... + tardi vedo di provare

comunque non trovo che sia il massimo fare l'esame mischiati, alla fine il monga di script non ne parla nemmeno, ci ha fatto fare un paio di esercizi su schell e via..

il trentini invece basa il corso sugli script in pratica(almeno così mi sembra)


Posted by Bloom on 20-05-2008 08:44:

a me Monga ha chiesto sia gli script che esercizi da linea di comando..


Posted by Gehur on 20-05-2008 13:01:

a ok, resta il fatto che in laboratorio di script io non ne ho visti

me li vedrò a casa ovviamente


Posted by Bloom on 22-05-2008 07:32:

Ne fanno pochi nelle prime lezione di laboratorio,comunque sono riuscita a passare laboratorio esercitandomi con gli esercizi proposti qui.
Stai tranquillo che non è così difficile come dicono.
Ciao


Posted by Gehur on 04-06-2008 13:01:

ragazzi come si fa la somma dei file contenuti da 2 utenti oppure di 2 cartelle

e se ho un file con dentro una lista di numeri, come li posso sommare???


Posted by Bloom on 05-06-2008 15:54:


Non ho capito la domanda


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

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