[Petit Problème sous Linux]

stena83 -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour, j'aimerais recevoir un mail chaque jours d'un rapport d'un antivIrus, et si virus trouvé quels fichiers sont infectés.

J'utilise clamav comme antivirus sous Debian sarge et cron pour automatiser la tâche.

la commande pour lancer le scan c'est :
clamscan -r / > fichier_sortie
, ce qui permet de lister tous les fichier s avec virus trouvé ou pas, et à la fin un résumé :

exemple :
/etc/smb.conf :OK
...
/etc/apache/httpd.conf : FOUND
...

--RESUMER DU SCAN ---
scanned Files : 12 0000
infected files : 1
...


donc j'aimerais afficher uniquement les fichiers infectés + le résumé.

clamscan -r / | grep "FOUND" >fichier_sortie


Cela fonctionne mais ne n'affiche pas le résumé.

Comment afficher le résumé+ les fichiers infectés ?

merci

4 réponses

  1. stena83
     
    En fait j'ai trouvé

    clamscan -r / > /tmp/analyse && cat /tmp/analyse | grep "FOUND" > /tmp/result | (tail /tmp/analyse >>/tmp/result) | (cat /tmp/result | mail MON_MAIL) | (rm -f /tmp/analyse /tmp/result)

    Voila, belle commande de ouf

    par contre g du mal a pigé la différence entre && et |
    0
  2. crabs Messages postés 909 Statut Membre 507
     
    salut,

    commande_shell1 && commande_shell2
    siginifie : exécuter la commande_shell2 si l'exécution de la commande_shell1
    n'a pas fourni un status d'erreur.
    rappel: pour une commande shell, 0 signifie pas d'erreur, tout autre entier
    signifie erreur lors de l'exécution
    Dans le même genre y 'a '||' qui permet de lance cmd2 si cmd1 est en erreur :
    cmd1 || cmd2

    commande_shell1 | commande_shell2
    toutes les caractères écrits sur la sortie standard de commande_shell1 sont
    envoyés sur l'entrée standard de la commande_ shell2.
    D'où l'importance d'envoyer les messages d'erreur sur la sortie d'erreur.

    A+, Crabs
    0
  3. stena83
     
    ok merci de ta reponse, mais alors comment faire un truc du genre :

    si commande1 réussi alors
    commande2
    sinon
    commande3
    0