Correction d'une script shell

Bonjour,

Merci de m'aider :

Le principe est de chercher dans le contenu d'un fichier sous la forme " oraBackup'date '+%Y%m%d_0300''.log " de chercher la chaine de caractère "This backup (20120406_0800) session is completed and finished" s'il est existe affiche 1 sinon 0.

J'ai commencer par ce script :

DIR=/opt/oracle/admin/VSDB_S1/backuplogs

FILE=oraBackup'date '+%Y%m%d_0300''.log
if [ -e cat $DIR/$FILE | grep -w " This backup (20120406_0800) session is completed and finished" ]
then echo 1
else

echo 0
fi

Merci de corriger ce script.

Le contenu du fichier oraBackup'date '+%Y%m%d_0300''.log :

Investigating block corruption...
No block corruption reported...
Finalizing this backup session, going to sleep for 60 sec...
Unmounting backup disks...
Removing lockfile...
Setting correct directory permissions as a result of a potential Data Guard re-installation...
This backup (20120607_0300) session is completed and finished with 2 warning(s).
/etc/init.d/orawatch start... on vs1a
/etc/init.d/orawatch start... on vs1b

3 réponses

  1. Contributeur
    hello
    This backup (20120607_0300) session is completed and finished
    comment connaitre 20120607_0300 c'est la date du jour ? et 300 ou 800 ?
    1. Car
      chaque fichier " oraBackup'date '+%Y%m%d_0300''.log " indique si le backup se génère ou non, si ok on trouve dans le contenu de ce fichier la ligne suivante avec la date du jour :

      exemple :

      This backup (20120607_0300) session is completed and finished

      Merci.
    2. Contributeur
      DIR=/opt/oracle/admin/VSDB_S1/backuplogs 
      FILE=oraBackup$(date '+%Y%m%d_0300').log 
      grep -q "This backup ([0-9_]*) session is completed and finished" $DIR/$FILE 
      if [ $? -eq 0 ] ; then 
              echo trouvé 
      else 
              echo pas trouvé 
      fi 
  2. salut,

    grep -qw "This backup (20120406_0800) session is completed and finished" "$dir/$fichier" && echo 1 || echo 0