Gianluca Mangiarotti ha scritto il 28/04/2016 alle 11:53: vi > Se non erro il valore è espresso in KB, almeno così risulta dal man purtroppo no come dicevo... top aggiunge una m mentre htop aggiunge M per esprimere il consumo in MiB. Ora ero interessato a sapere come esprime il consumo in GiB.
Se a qualcuno interessa questo è lo script: #!/bin/bash pname=dar logger=$(which logger) [ -z $logger ] && echo "E: logger no found" && exit 1 logger="$logger -t $(basename $0 .sh): " while [ 1 = 1 ]; do pid=$(pidof $pname) maxram=0 if [ -n "$pid" ]; then $logger "Inizio monitoraggio utilizzo RAM per il processo $pname ($pid)" while [ "$(pidof $pname)" = "$pid" ]; do curram=$(top -p $pid -b -n1 |\ tail -n1 |\ sed 's/^[[:space:]]*'$pid'[[:space:]]*[^[:space:]]*[[:space:]]*[^[:space:]]*[[:space:]]*[^[:space:]]*[[:space:]]*[^[:space:]]*[[:space:]]*\([^[:space:]]*\).*$/\1/') [ -n "$(echo $curram | grep [0-9]*m$)" ] && curram=$(echo $curram | grep -o "[0-9]*") && curram=$(($curram*1024)) [ -n "$(echo $curram | grep [0-9]*g$)" ] && curram=$(echo $curram | grep -o "[0-9]*") && curram=$(($curram*1024*1024)) if [ -z "$(echo $curram | grep ^[0-9]*$)" ]; then $logger "E: errore nella ricerca della ram utilizzata: $curram non contiene un valore interpretabile come consumo di ram" else [ $curram -gt $maxram ] && maxram=$curram fi sleep 1 done $logger "il processo $pname ($pid) ha consumato al massimo "$maxram"K di RAM" fi sleep 10 done Lo script non fa altro che loggare in sysylog il consumo di RAM del processo chiamato $pname (nello script ad esempio si monitorizza il consumo di dar). Un saluto Piviul