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. salut,

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