Connexion  

   

Annexes  

   
   

Note utilisateur: 0 / 5

Etoiles inactivesEtoiles inactivesEtoiles inactivesEtoiles inactivesEtoiles inactives
 

Voici ci-dessous un petit script permettant de récupérer dans des fichiers le top 10 des processus les plus consommateur en mémoire ou en CPU. Un fichier pour la CPU et un autre pour la mémoire.

A personnaliser pour l'interval et la durée.

#!/bin/ksh
# Stockage des processus les plus consommateurs en CPU ou mémoire
# Ch.SONOLET
# Log files
PROCFILE=/tmp/CPU_cons.$$
MEMFILE=/tmp/MEM_cons.$$

# Maximum duration
LOOPNUM=60    # Number of Interval
INTERVAL=60     # Seconds
COUNT=1
while [ $COUNT -lt $LOOPNUM ]
do
ITIME=`date +%Y%m%d%H%M`
# CPU  ANALYSIS
ps auxw | sort -r +2 |grep -v STIME|head -10|while read user pid cpucons memcons SZ RSS TTY STAT STIME TIME COMMAND
do
NTIME=`echo $TIME|sed 's/://'`
if test "$NTIME" = "$TIME"
then
STIME="$STIME $TIME"
fi
COMMAND=`echo $COMMAND |sed 's/[0-9]*:[0-9]* //'`
echo "$ITIME;$cpucons;$memcons;$SZ;$RSS;$STIME;$COMMAND" >> $PROCFILE
done
# MEMORY  ANALYSIS
ps auxw | sort -r +3 |grep -v STIME|head -10|while read user pid cpucons memcons SZ RSS TTY STAT STIME TIME COMMAND
do
NTIME=`echo $TIME|sed 's/://'`
if test "$NTIME" = "$TIME"
then
STIME="$STIME $TIME"
fi
COMMAND=`echo $COMMAND |sed 's/[0-9]*:[0-9]* //'`
echo "$ITIME;$cpucons;$memcons;$SZ;$RSS;$STIME;$COMMAND" >> $MEMFILE
done

COUNT=`expr $COUNT + 1`
sleep $INTERVAL
done

   
   
© ALLROUNDER