Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/02/2010, à 18:00

halskarr

[Résolu][Script][Clamav]

Bonjour à tous,

Etant de niveau débutant autant en script qu'en linux j'ai besoin de votre aide.

Je m'explique, en m'aidant de ce post : http://forum.ubuntu-fr.org/viewtopic.php?id=195531, j'ai codé un petit script qui permet de scanner, avec Clamav, une clé USB.

Voici mon script :

#!/bin/bash
CLE_USB=""
cat /proc/partitions | grep "sd[a-z]$" | awk '{print $4}' >/tmp/CHECK_USB
(echo "#Veuillez 

brancher votre clé usb");
sleep 20;(echo "#Traitement en cours...");
cat /proc/partitions | grep "sd[a-z]$" | awk '{print $4}' >/tmp/CHECK_USB2
DIFF=$(diff -a /tmp/CHECK_USB /tmp/CHECK_USB2 | sed -n 2p | awk '{print $2}')
echo "$DIFF" >/tmp/RESULT_SD
CLE_USB=$(cat /tmp/RESULT_SD)
(echo "#Recherche du nom de la cle..");
blkid -s LABEL | grep /dev/$CLE_USB | while read line
do
LABEL="$(echo $line | awk '{print $2}' | awk -F\" '{print $2}')"
done
clamscan -r /media/$LABEL --move=/home/clamav-1/Bureau/QUARANTAINE
nautilus /media/$LABEL

J'ai un soucis avec cette ligne :

nautilus /media/$LABEL

Il ne m'ouvre jamais le dossier de ma clé il ouvre /media et je n'ai aucune erreur qui apparaît dans le terminal sad
Chose que je ne comprend pas c'est qu'il scanne bien la clé donc en théorie la variable $LABEL récupère bien le nom de ma clé...

Merci pour le temps que vous passerez sur mon problème.

Hal

Dernière modification par halskarr (Le 26/03/2010, à 11:18)

Hors ligne

#2 Le 18/02/2010, à 21:10

redisded

Re : [Résolu][Script][Clamav]

Bonsoir,
pour commencer, tu peut coller un petit

echo "$LABEL"

apres la définition de la variable, ca te permettra de vérifier qu'elle récupere bien le nom de ta clé.
cordialement,
redisded

Dernière modification par redisded (Le 18/02/2010, à 21:11)

Hors ligne

#3 Le 19/02/2010, à 10:50

halskarr

Re : [Résolu][Script][Clamav]

Bonjour et merci d'avoir pris le temps de me répondre.

un

echo "$LABEL"

ne me retourne rien sad

Hors ligne

#4 Le 19/02/2010, à 15:03

halskarr

Re : [Résolu][Script][Clamav]

Personne n'a une idée ? hmm

Hors ligne

#5 Le 19/02/2010, à 22:10

redisded

Re : [Résolu][Script][Clamav]

Ce qui veut dire que ta variable est mal définie :

LABEL="$(echo $line | awk '{print $2}' | awk -F\" '{print $2}')"

bon perso j'y connait rien en awk mais ca me parrait un peu tiré par les cheveux pour ce que tu veut faire wink

essai de remplacer cette partie de ton script :

blkid -s LABEL | grep /dev/$CLE_USB | while read line
do
LABEL="$(echo $line | awk '{print $2}' | awk -F\" '{print $2}')"
done

par :

LABEL=$(blkid -s LABEL | grep /dev/"$CLE_USB" | cut -d\" -f2)

ce qui veut dire en gros :

LABEL=$(*****) : assigne le retour de la commande entre parenthèse comme contenu de la variable LABEL

blkid -s LABEL : affiche les labels des différents disques

grep /dev/"$CLE_USB" : ne retient que la ligne correspondant à ta clé usb

cut -d\" -f2 : extrait le label du reste de la ligne

Hors ligne

#6 Le 22/02/2010, à 11:46

halskarr

Re : [Résolu][Script][Clamav]

Désolé pour le retard et merci pour ton aide.

Hum ce que tu me proposes ne change rien. Serait-il possible que cela vienne de la clé ? En fait j'ai 2 clés, dont une que je qualifierai de "no-name" et c'est elle je pense qui me pose problème. Quand je la branche, dans le dossier media j'ai son uuid et non son label qui apparaît. Elle ne doit pas être correctement reconnu par ubuntu. Par contre avec l'autre clé je n'ai aucun soucis.

Hors ligne

#7 Le 23/02/2010, à 14:19

halskarr

Re : [Résolu][Script][Clamav]

Si quelqu'un pouvait confirmer ou infirmer ce que j'avance. Merci:)

Hors ligne

#8 Le 26/02/2010, à 21:20

redisded

Re : [Résolu][Script][Clamav]

salut
désolé à mon tour pour le retard, pas passé depuis quelques jours
j'ai déja remarqué en effet que certaine clé se montent sous l'uuid, et pas forcément sur des clés de basses qualité.

Par contre, les deux que j'ai sous la main se montent bien sous le nom donc je ne peut pas tester, mais je ne me souvient plus si l'uuid est tout le temp le meme ou s'il il change à chaque connection de la clé; essi de vérifier cela, si il reste toujours le meme tu devrait pouvoir t'arranger facilement.
a+
redisded

Hors ligne

#9 Le 01/03/2010, à 17:45

halskarr

Re : [Résolu][Script][Clamav]

Ce n'est pas grave moi non plus ces temps-ci je ne peux venir sur le forum tous les jours tongue

Effectivement c'est toujours le même UUID. Je vais voir si je peux avancer et je te tiens au courant !

Merci.

Hors ligne

#10 Le 11/03/2010, à 11:46

halskarr

Re : [Résolu][Script][Clamav]

Bonjour, bon je sèche un peu en fait. J'ai une idée mais je ne m'y connais pas assez en script pour savoir si c'est réalisable. En fait il faudrait que le script détermine si ubuntu prend l'UUID ou le LABEL et agisse en fonction. Et c'est justement cette condition que je n'arrive pas à mettre en place.

Je ne dis pas non à un coup de main tongue

Merci.

Hors ligne

#11 Le 13/03/2010, à 21:01

redisded

Re : [Résolu][Script][Clamav]

bonsoir, pas trop le temps de rentrer dans le détail mais tu peut reécupérer le label et l'uuid de la clé puis terminer ton script par :

if [-d "$LABEL"] ; then
    nautilus "/media/$LABEL"
else
    nautilus "/media/$UUID"
fi

Hors ligne

#12 Le 15/03/2010, à 17:40

halskarr

Re : [Résolu][Script][Clamav]

Bonjour, je teste ça et je te tiens au courant.

Merci !

Hors ligne

#13 Le 26/03/2010, à 11:16

halskarr

Re : [Résolu][Script][Clamav]

Bon voici mon script final et ça marche plutôt bien. Je le mettrais à jour si je l'améliore.

#!/bin/bash
CLE_USB=""
cat /proc/partitions | grep "sd[a-z]$" | awk '{print $4}' >/tmp/CHECK_USB
(echo "#Veuillez brancher votre clé usb");
sleep 20;
(echo "#Traitement en cours...");
cat /proc/partitions | grep "sd[a-z]$" | awk '{print $4}' >/tmp/CHECK_USB2
DIFF=$(diff -a /tmp/CHECK_USB /tmp/CHECK_USB2 | sed -n 2p | awk '{print $2}')
echo "$DIFF" >/tmp/RESULT_SD
CLE_USB=$(cat /tmp/RESULT_SD)
(echo "#Recherche du nom de la cle..");
LABEL=$(blkid -s LABEL | grep /dev/"$CLE_USB" | cut -d\" -f2)
UUID=$(blkid -s UUID | grep /dev/"$CLE_USB" | cut -d\" -f2)
echo "$LABEL"
echo "$UUID"
if [ "$LABEL" ==  "" ]
then
	clamscan -r /media/$UUID --move=/home/clamav-1/Bureau/QUARANTAINE
	nautilus /media/$UUID /mnt
else
	clamscan -r /media/$LABEL --move=/home/clamav-1/Bureau/QUARANTAINE
	nautilus /media/$LABEL /mnt
fi

Merci pour ton aide en tout cas tongue

Hors ligne