ruby

Ruby code posted
created at 05 Apr 09:17, updated at 11 Apr 11:34

Edit | Back
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/bin/sh

# Ce script attend 2 paramètres :
#     -  mois
#     -  instance
# Exemple :
#     sh ORA-00060.sh 12 1

print_ora60 () {
  fichier="/var/log/epg-server_inst1/$1"
  if [ -e $fichier ]; then
    echo -n "$fichier : "
    grep "ORA-00060" -wc $fichier
  else
    fichier="/EPG/log_instance1/vmwdaa-tepg-p0$2/$1"
    if [ -f $fichier ]; then
      echo -n "$fichier : "
      grep "ORA-00060" -wc $fichier
    else
      fichier="$fichier.tar.gz"
      if [ -f $fichier ]; then
          echo -n "$fichier : "
          tar -O -xf $fichier | grep "ORA-00060" -wc
      else
          echo "$fichier non trouvé"
      fi
    fi  
  fi
}

usage () {
  echo -e "Usage : \n# Ce script attend soit 2 paramètres pour afficher toutes les erreurs ora00060 des logs du mois :\n#\t-  mois\n#\t-  serveur\n# Exemple :\n#\tsh ORA-00060.sh 12 1"
  echo -e "# soit 1 paramètre --lastWeek pour afficher toutes les erreurs ora00060 des logs survenues la semaine précédente :\n# Exemple :\n#\tsh ORA-00060.sh --lastWeek"
}


if [ "$#" -lt 2 ]; then
  usage
else
  if [ "$1" == "--lastWeek" ]; then
      print_ora60 "server.log" $2
      for numero in `seq 1 6`
        do
        dateFichier=$(date +"%Y-%m-%d" --date="$numero day ago")
        print_ora60 "server.log.$dateFichier" $2
      done
      
  else
    annee=$(date +"%Y")
    for numero in `seq 1 31`
      do
      if [ $numero -lt 10 ]; then
        fichier="server.log.$annee-$1-0$numero"
      else
        fichier="server.log.$annee-$1-$numero"
      fi
      
      print_ora60 $fichier $2
    done
  fi
fi
1.48 KB in 8 ms with coderay