[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3master/usr/share/se3/scripts/ -> check_log_size.sh (source)

   1  #!/bin/bash
   2  #
   3  ## $Id ##
   4  #
   5  ##### Permet de controler la taille des fichiers de logs pour prevenir un probleme de rotation #####
   6  
   7  # Taille max d'un fichier de log en Mo:
   8  nb_max=100
   9  
  10  # Possibilite de passer en parametre la taille en Mo a tester
  11  if [ -n "$1" ]; then
  12      t=$(echo "$1"|sed -e "s|[0-9]||g")
  13      if [ -z "$t" ]; then
  14          nb_max=$1
  15      fi
  16  fi
  17  
  18  # Taille max d'un fichier de log en ko:
  19  taille_max=$(($nb_max}*1024))
  20  
  21  tmp=/tmp/root_check_size_log_$(date +%Y%m%d%H%M%S)
  22  mkdir -p -m 700 "$tmp"
  23  
  24  MAIL_REPORT()
  25  {
  26      [ -e /etc/ssmtp/ssmtp.conf ] && MAIL_ADMIN=$(cat /etc/ssmtp/ssmtp.conf | grep root | cut -d= -f2)
  27      if [ ! -z "$MAIL_ADMIN" ]; then
  28          REPORT=$(cat $REPORT_FILE)
  29          #On envoie un mail a l'admin
  30          echo "$REPORT"  | mail -s "[SE3] Resultat de $0" $MAIL_ADMIN
  31      fi
  32  }
  33  
  34  # Liste des fichiers de log
  35  find /var/log/ -type f|xargs du -sk|sort -n > $tmp/liste_fichiers_log.txt
  36  
  37  message="Un ou des fichiers de log depassent la taille maxi definie ($nb_max Mo)
  38  Il se peut que cela signifie que la rotation des fichiers de log ne fonctionne pas correctement.
  39  A terme, cela peut provoquer des dysfonctionnements et lenteurs du serveur.
  40  
  41  Il se peut egalement que la taille maxi definie soit insuffisante pour tenir compte de la quantite d'informations a loguer avant la rotation des logs.
  42  Quoi qu'il en soit vous devriez prendre des mesures.
  43  "
  44  
  45  # Parcours des fichiers de log
  46  #chaine=""
  47  while read A
  48  do
  49      t=$(echo "$A"|tr "\t" " "|cut -d" " -f1)
  50      if [ $t -ge $taille_max ]; then
  51          #echo $A
  52          f=$(echo "$A"|tr "\t" " "|sed -e "s| \{2,\}| |g"|cut -d" " -f2)
  53          s=$(du -sh $f)
  54          #chaine="$chaine\n$s"
  55          echo $s >> $tmp/liste_fichiers_log_trop_volumineux.txt
  56      fi
  57  done < $tmp/liste_fichiers_log.txt
  58  
  59  # Envoi si necessaire d'un mail
  60  #if [ -n "$chaine" ]; then
  61  if [ -e "$tmp/liste_fichiers_log_trop_volumineux.txt" ]; then
  62      echo "$message" > $tmp/message.txt
  63      cat $tmp/liste_fichiers_log_trop_volumineux.txt >> $tmp/message.txt
  64  
  65      REPORT_FILE=$tmp/message.txt
  66      MAIL_REPORT
  67  fi
  68  
  69  # Menage
  70  rm -fr "$tmp"


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1