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:

[code] #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[/code]

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.

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,

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:

[list=*]
*]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

[/list]

[list=*]
*](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 /*]
[/list]

[list=*]
]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./]
[/list]

La stringa date +%F_%H-%M-%S genera anno-mese-giorno_ora-minuti-secondi senza odiosi spazi :smiley:

[quote=bebo_sudo]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:

[list=*]
*]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

[/list]

[list=*]
*](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 /*]
[/list]

[list=*]
]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./]
[/list]

La stringa date +%F_%H-%M-%S genera anno-mese-giorno_ora-minuti-secondi senza odiosi spazi :D[/quote]

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