Torna indietro   Hardware Upgrade Forum > Software > Linux, Unix, OS alternativi

Marathon: arriva il Fortnite hardcore
Marathon: arriva il Fortnite hardcore
Marathon è il titolo multiplayer competitivo del momento. Ecco quali sono le caratteristiche di gioco principali, insieme alle nostre prime considerazioni dopo qualche "run" nell'extraction shooter di Bungie
HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare
HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare
A New York HP ha messo al centro della scena HP IQ, la piattaforma di IA locale da 20 miliardi di parametri. L’abbiamo vista in funzione: è uno strumento che funziona, pensato per un target specifico, con vantaggi reali e limiti altrettanto evidenti
PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è
PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è
La PNY GeForce RTX 5080 Slim OC si distingue nel panorama delle GPU di fascia alta per il design compatto a due slot, ispirato alla NVIDIA GeForce RTX 5080 Founders Edition. In questo test analizziamo comportamento termico e prestazioni in gioco, valutando se il formato ridotto comprometta o meno l'esperienza complessiva rispetto alle soluzioni più ingombranti presenti sul mercato.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 02-09-2009, 16:34   #1
Janky
Senior Member
 
L'Avatar di Janky
 
Iscritto dal: Feb 2004
Città: Lecco/Milano
Messaggi: 2863
problema con grep e top

Ciao a tutti,

devo scrivere uno scriptino che ogni tot secondi scriva in un file l'ora corrente e l'uso di cpu

se scrivo
Codice:
top | grep Cpu
mi stampa sta roba
Codice:
Cpu(s):  0.1%us,  0.1%sy,  0.0%ni, 98.5%id,  1.0%wa,  0.0%hi,  0.2%si,  0.0%st
a me serve solo il primo valore, quindi aggiungo un cut dopo in sto modo

Codice:
top | grep Cpu | cut -b 10-14
ma così non mi stampa più nulla! dove sbaglio??
__________________
C'era un moscerino sul tuo schermo
Janky è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2009, 20:52   #2
Gimli[2BV!2B]
Senior Member
 
L'Avatar di Gimli[2BV!2B]
 
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
Codice:
w -u | cut -sd, -f4,6,8
Esempio di output:
Codice:
gimli@altarf:~$ w -u | cut -sd, -f4,6,8
03,15,16
03 = carico percentuale medio dell'ultimo minuto (-f4)
15 = carico percentuale medio degli ultimi 5 minuti (-f6)
16 = carico percentuale medio degli ultimi 15 minuti (-f8)
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...)
Gimli[2BV!2B] è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2009, 20:55   #3
Janky
Senior Member
 
L'Avatar di Janky
 
Iscritto dal: Feb 2004
Città: Lecco/Milano
Messaggi: 2863
dell'ultimo minuto? perchè a me servirebbe il carico ogni 5 secondi

cmq grazie mille!
__________________
C'era un moscerino sul tuo schermo
Janky è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2009, 21:35   #4
Janky
Senior Member
 
L'Avatar di Janky
 
Iscritto dal: Feb 2004
Città: Lecco/Milano
Messaggi: 2863
no, ma non mi va bene il valore medio... devo proprio lavorare su top perchè devo prendere la percentuale corrente di uso di cpu da parte dello user

con questo comando prendo l'ora
[code]
top -n 1 | grep average | cut -c 20-28
[/code]

c'è un modo per prendere sempre con un comando solo anche la terza riga, cioè quella dei timings di cpu che effettivamente mi interessano?

devo avere come risultato un file del genere

22:31:46 0.0
22:31:51 22.7
22:31:56 34.9
22:32:01 20.4
22:32:06 20.1
22:32:11 21.7
22:32:16 21.2
22:32:21 20.8
22:32:26 18.8
22:32:31 21.0
22:32:36 21.1
22:32:41 17.6

cioè l'orario e il tempo di cpu associato...

solo che se lo faccio con 2 grep separati mi andrebbe a capo ogni riga ottentendo una roba del genere, che non mi va bene purtroppo

22:31:46
0.0
22:31:51
22.7
22:31:56
34.9
22:32:01
20.4
22:32:06
20.1
22:32:11
21.7
22:32:16
21.2
22:32:21
20.8
22:32:26
18.8
22:32:31
21.0
22:32:36
21.1
22:32:41
17.6
__________________
C'era un moscerino sul tuo schermo
Janky è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2009, 23:05   #5
Gimli[2BV!2B]
Senior Member
 
L'Avatar di Gimli[2BV!2B]
 
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
Uff, che pignolo!

Così potrebbe andare?
Codice:
echo 100 - `top -d0 -n1 | sed -e '/^Cpu(s):/!d' -e 's/.*ni,[^\ ]*//' -e 's/%.*$//'` | bc
Prende la percentuale di idle, dopodiché calcola 100 - $idle.
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...)
Gimli[2BV!2B] è offline   Rispondi citando il messaggio o parte di esso
Old 03-09-2009, 09:59   #6
Psycotic
Senior Member
 
L'Avatar di Psycotic
 
Iscritto dal: Feb 2004
Messaggi: 1209
echo "`date +%H:%M:%S` `top -n1|grep Cpu|awk '{print $2}'|sed s/,//g`"
__________________
...Ordunque...
Psycotic è offline   Rispondi citando il messaggio o parte di esso
Old 03-09-2009, 10:36   #7
Janky
Senior Member
 
L'Avatar di Janky
 
Iscritto dal: Feb 2004
Città: Lecco/Milano
Messaggi: 2863
grazie mille per l'aiuto che mi state dando

i 2 comandi che mi avete dato sembrano funzionare molto bene, ma se li lanciate "a mano" a distanza di 5 secondi, il valore di cpu che vi stampa a voi cambia??

perchè a me rimane sempre lo stesso, anche se lo lancio 15 volte di seguito
__________________
C'era un moscerino sul tuo schermo
Janky è offline   Rispondi citando il messaggio o parte di esso
Old 03-09-2009, 14:04   #8
Psycotic
Senior Member
 
L'Avatar di Psycotic
 
Iscritto dal: Feb 2004
Messaggi: 1209
che devo dire, in vita mia non ero mai accorto di sta cosa..

Il top nella prima paginata dice c....ate, hai ragione!
__________________
...Ordunque...
Psycotic è offline   Rispondi citando il messaggio o parte di esso
Old 03-09-2009, 14:20   #9
Psycotic
Senior Member
 
L'Avatar di Psycotic
 
Iscritto dal: Feb 2004
Messaggi: 1209
in alternativa potresti provare un tool per statistiche come il sar.
Oppure puoi fare 2 pagine di top e poi prendere solo la seconda pagina.

Una cosa cosi':

echo "`date +%H:%M:%S` `top -n2|grep Cpu|awk '{print $2}'|sed s/,//g|tail -1`"
__________________
...Ordunque...
Psycotic è offline   Rispondi citando il messaggio o parte di esso
Old 13-09-2009, 20:29   #10
Janky
Senior Member
 
L'Avatar di Janky
 
Iscritto dal: Feb 2004
Città: Lecco/Milano
Messaggi: 2863
argh! speravo di averla scampata usando sar... ma al mio prof non va bene...

mannaggia a me che non so usare le espressioni regolari... ora tento di studiarmele ben bene

sar -u 4 5 restituisce i dati con questa sintassi (il 4 sta per 4 secondi tra una iterazione e l'altra, il 5 per il numero di iterazioni da fare)

Codice:
Linux 2.6.27.5 (specweb_web) 	09/13/2009

08:36:20 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
08:36:24 PM     all       2.74      0.00      0.25     0.00      0.00   97.01
08:36:28 PM     all       0.75      0.00      0.25     0.00      0.00   99.00
08:36:32 PM     all       3.00      0.00      0.75     0.00      0.00   96.25
08:36:36 PM     all       0.00      0.00      0.25     2.00      0.00   97.76
08:36:40 PM     all       0.00      0.00      0.00     0.00      0.00  100.00
Average:        all       1.30      0.00      0.30     0.40      0.00   98.00
a me serve il tempo e la somma di user+system in un file
mentre in un altro mi serve il tempo e la iowait

al momento non ho proprio idea di come si faccia lol
__________________
C'era un moscerino sul tuo schermo

Ultima modifica di Janky : 13-09-2009 alle 20:32.
Janky è offline   Rispondi citando il messaggio o parte di esso
Old 13-09-2009, 21:04   #11
Janky
Senior Member
 
L'Avatar di Janky
 
Iscritto dal: Feb 2004
Città: Lecco/Milano
Messaggi: 2863
ok con

Codice:
echo "`sar -u 2 4|grep M|awk '{print $1 $4+$6}'|sed 1d`"
mi sono avvicinato a quello che mi serve... ora... come diavolo faccio a mettere lo spazio tra $1 e $4+$6??

così mi stampa

10:03:231
10:03:254.52
10:03:270
10:03:294.5

al posto di

10:03:23 1
10:03:25 4.52
10:03:27 0
10:03:29 4.5
__________________
C'era un moscerino sul tuo schermo
Janky è offline   Rispondi citando il messaggio o parte di esso
Old 14-09-2009, 00:35   #12
Gimli[2BV!2B]
Senior Member
 
L'Avatar di Gimli[2BV!2B]
 
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
Codice:
sar -u 2 4 | awk '/AM|PM/{ if(FNR>3) print $1" "$2" "$4+$6}'
  • /AM|PM/ sostituisce il grep ed è più "preciso" (| in mezzo funge da OR tra le due stringhe).
  • if(FNR>3) salta fino alla terza riga.
  • " " è il famoso spazio.
  • echo non serve, se l'hai tenuto dal mio precedente esempio serviva solo per bc.
  • Gli "" esterni forzano il tutto ad una stringa, non sono indispensabili, salvo inserimento in variabili di command substitution con output contenenti spazi.
  • Command substitution: gli `` esterni dicono a bash/sh di mettere in quel punto l'output del comando contenuto (cosa che accade anche senza), oltretutto invocando una subshell.
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...)
Gimli[2BV!2B] è offline   Rispondi citando il messaggio o parte di esso
Old 14-09-2009, 01:56   #13
Janky
Senior Member
 
L'Avatar di Janky
 
Iscritto dal: Feb 2004
Città: Lecco/Milano
Messaggi: 2863
grazie mille!!

mi sono accorto di una cosa... sar visualizza solo PM, se l'ora è minore di 12 non visualizza AM

in ogni caso non mi interessa che stampi anche average, quindi mi può bastare

Codice:
sar -u 2 4 | awk '{ if(FNR>3) print $1" "$4+$6}'
ripeto, grazie mille per l'aiuto!!
__________________
C'era un moscerino sul tuo schermo
Janky è offline   Rispondi citando il messaggio o parte di esso
Old 14-09-2009, 17:38   #14
Janky
Senior Member
 
L'Avatar di Janky
 
Iscritto dal: Feb 2004
Città: Lecco/Milano
Messaggi: 2863
mannaggia a sar...


purtroppo il fatto del PM/AM è un bug bello grosso...


se l'ora è minore di 12 come ho detto prima, non viene stampato AM, quindi i campi che mi interessa sommare sono $3 e $5

se invece l'ora è maggiore di 12 viene stampato PM, quindi i dati che devo sommare diventano il $3 e il $6!!! mannaggia come posso fare??

edit: risolto con sed s/PM//
__________________
C'era un moscerino sul tuo schermo

Ultima modifica di Janky : 14-09-2009 alle 17:40.
Janky è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marathon: arriva il Fortnite hardcore Marathon: arriva il Fortnite hardcore
HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare HP Imagine 2026: abbiamo visto HP IQ all’opera, ...
PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è PNY RTX 5080 Slim OC, sembra una Founders Editio...
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei Wi-Fi 7 con il design di una vetta innevata: ecc...
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte Core Ultra 7 270K Plus e Core Ultra 7 250K Plus:...
BYD ha licenziato 100.000 persone nel 20...
FRITZ!Box 5690 Pro a 275€ e il nuovo FRI...
I segreti dei 2 nanometri di TSMC rubati...
CMF Buds 2 vs Nothing Ear (a): due auric...
Microonde e friggitrici ad aria con supe...
Amazon Haul: bestseller a -40% acquistan...
C'è ancora spazio per gli iMac: &...
GPU gaming a rischio? Micron oltre l'HBM...
iPhone 18 Pro, cambio di design in arriv...
OnePlus non molla: la serie Nord 6 sar&a...
GeForce RTX 3080 raffreddata con un diss...
Proofpoint mette in sicurezza gli agenti...
Annunci falsi su Bakeca con dati veri di...
Attenzione alla truffa dell'assegno di A...
Addio al mito delle batterie a stato sol...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:13.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v