Fedora Online Forum

Lavori in corso! I nostri pinguini sono all'opera e risolveranno i problemi il prima possibile ;-)

#1 18-04-2018 21:01:27

antowen
Collaboratore
Da Ostrava
Registrato: 21-03-2010
Messaggi: 1'245
Sito web

Comando CPU & Memory su file csv

Ciao a tutti,
Ho vari comandi e stringhe per cercare lo stato della cpu e della memoria, qui alcuni esempi:

 #memory first 20 processes
 ps aux | awk '{print $2, $4, $11}' | sort -k2rn | head -n 20
 
 ps aux  | awk '{print $6/1024 " MB\t\t" $11}'  | sort -n
 
 ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
 
 ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
 
 #for process
 ps aux | awk '{print $4"\t"$11}' | sort | uniq -c | awk '{print $2" "$1" "$3}' | sort -nr |grep java
 
 ps aux | awk '{print $2, $4, $11}' | sort -k2rn | head -n 10

Vorrei raccogliere su alcune macchine dei dati per qualche ora, pensavo di fare un cronjob che faccia il run di uno di questi comandi

*/5 0 * * *  ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head >/dev/null 2>&1

ma che salvi l'output su un unico file (senza sovrascrivere il precendente) o che ne crei uno per ogni run.


Antonio G. Fedora 24  :cin:
antowen.com

Non in linea

#2 19-04-2018 07:09:42

andreamal
Fedora nel sangue
Da Roma
Registrato: 16-12-2009
Messaggi: 1'638

Re: Comando CPU & Memory su file csv

Non so interpretare il comando che hai scritto però ci provo.
Sicuramente già lo sai ma per scrivere l'uotput si redireziona con ">" che cancella il file precedente mentre con ">>" appendi al file eventualmente presente l'output,


Ciao
Andrea Malfatti

Non in linea

#3 19-04-2018 08:49:49

bebo_sudo
Collaboratore
Da Trento+Trieste
Registrato: 28-02-2011
Messaggi: 1'646
Sito web

Re: Comando CPU & Memory su file csv

Non credo di aver capito qual'e' il tuo problema antowen :gratt:

Se semplicemente vuoi eseguire tutti quei comandi insieme e salvarti tutti gli output puoi:

  • raccoglierli in un unico scriptone da lanciare con:

    */5 0 * * * /path/to/scriptone >/path/to/log_stdout_$(date +%F_%H-%M-%S).txt 2>/path/to/log_stderr_$(date +%F_%H-%M-%S).txt
  • (se vuoi poterli lanciare con tempistiche diverse) puoi dividere i comandi con lo stesso timing in diversi scripts, e lanciarli separatamente:

    */5 0 * * * /path/to/scriptone_ogni_12m >/path/to/log_12m_stdout_$(date +%F_%H-%M-%S).txt 2>/path/to/log_12m_stderr_$(date +%F_%H-%M-%S).txt
    */2 0 * * * /path/to/scriptone_ogni_30m >/path/to/log_30m_stdout_$(date +%F_%H-%M-%S).txt 2>/path/to/log_30m_stderr_$(date +%F_%H-%M-%S).txt
  • scrivere a mano ogni comando nel cronjob, usando un redirect con append in un log file senza minuti e secondi (altrimenti ne genereresti N ad ogni clock) ma ovviamente e' la strada piu' dispendiosa anche da mantenere.

La stringa

date +%F_%H-%M-%S

genera anno-mese-giorno_ora-minuti-secondi senza odiosi spazi big_smile


Documentation Admin                ~~~~~                La pigrizia sterminerà l'umanità.

Non in linea

#4 19-04-2018 22:00:07

antowen
Collaboratore
Da Ostrava
Registrato: 21-03-2010
Messaggi: 1'245
Sito web

Re: Comando CPU & Memory su file csv

bebo_sudo ha scritto:

Non credo di aver capito qual'e' il tuo problema antowen :gratt:

Se semplicemente vuoi eseguire tutti quei comandi insieme e salvarti tutti gli output puoi:

  • raccoglierli in un unico scriptone da lanciare con:

    */5 0 * * * /path/to/scriptone >/path/to/log_stdout_$(date +%F_%H-%M-%S).txt 2>/path/to/log_stderr_$(date +%F_%H-%M-%S).txt
  • (se vuoi poterli lanciare con tempistiche diverse) puoi dividere i comandi con lo stesso timing in diversi scripts, e lanciarli separatamente:

    */5 0 * * * /path/to/scriptone_ogni_12m >/path/to/log_12m_stdout_$(date +%F_%H-%M-%S).txt 2>/path/to/log_12m_stderr_$(date +%F_%H-%M-%S).txt
    */2 0 * * * /path/to/scriptone_ogni_30m >/path/to/log_30m_stdout_$(date +%F_%H-%M-%S).txt 2>/path/to/log_30m_stderr_$(date +%F_%H-%M-%S).txt
  • scrivere a mano ogni comando nel cronjob, usando un redirect con append in un log file senza minuti e secondi (altrimenti ne genereresti N ad ogni clock) ma ovviamente e' la strada piu' dispendiosa anche da mantenere.

La stringa

date +%F_%H-%M-%S

genera anno-mese-giorno_ora-minuti-secondi senza odiosi spazi big_smile

Questo mi sembra utile e adatto a quello che dovrei fare, lo testerò, grazie  smile


Antonio G. Fedora 24  :cin:
antowen.com

Non in linea

Piè di pagina