[ KSH - AIX ] Script à la C..

Script à la C.. [ KSH - AIX ] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 29-11-2005 à 12:26:02    

Bonjour,  
 
Je vous explique le script que je veux écrire.  
 
Je veux faire une recherche ( #find ) sur /home afin de savoir si ce répertoire a été modifié depuis 24H.  
J'envoie le résultat de cette recherche dans une fichier ( file ).  
Le contenu de mon fichier file resemble à :  
/home  
/home/test/  
/home/test/.profile  
Je regarde dans ce fichier si le mot /home est présent. ( avec une commande que minusplus m'avait fourni dans un autre sujet, merci à lui... )  
Si /home existe alors  
j'affiche "le répertoire a été modifié"  
autrement " Rien n'a été modifié"  
 
Voici ce que j'ai écrit :  
 
##################################"  
 
find /home -ctime 1 -print > file  
if [ MOT=$(perl -w -p -e '/(/hom\S+)/ and $_=$1;' file) ]  
then  
   if [ "$MOT" =  "/home" ]  
   then  
   echo " le repertoire a été modifié "  
   else  
   echo " rien n'a été modifié "  
   fi  
fi  
exit 0  
 
#########################  
 
Par contre ce script ne fonctionne pas car dans mon 1er if, le mot en rouge /hom est mal interprêté...  
Et je ne suis pas sur que mon 2ieme if soit correct.  
 
Mais peut être que je m'y prends mal aussi pour chercher /home dans mon file....  
 
quelqu'un pour m'aider??  
Merci  

Reply

Marsh Posté le 29-11-2005 à 12:26:02   

Reply

Marsh Posté le 29-11-2005 à 12:37:25    

peut etre avec un \/hom

Reply

Marsh Posté le 29-11-2005 à 13:16:50    

je ferais plus simple :
 
if [ -z $(find /home -ctime 1 -print -quit) ]  
then
  echo "not modified"
else
  echo modified
fi

Reply

Marsh Posté le 29-11-2005 à 13:52:27    

J'ai un souci quand je l'execute...
il me dit de spécifier un paramètre avec cette commande...
 
Par contre miniplus, le -z signifie : si le résultat n'est pas nul, non??
On joue alors avec la valeur de retour qui sera 0 ou 1 et non le mot /home??

Reply

Marsh Posté le 29-11-2005 à 13:55:52    

oui, mais on fait le find que dans /home... donc, de toute maniere, si il ya des resultats, c'est que ca a été modifié

Reply

Marsh Posté le 29-11-2005 à 13:56:38    

heaven35 a écrit :

J'ai un souci quand je l'execute...
il me dit de spécifier un paramètre avec cette commande...

là j'ai pas compris ! :D

heaven35 a écrit :


Par contre miniplus, le -z signifie : si le résultat n'est pas nul, non??
On joue alors avec la valeur de retour qui sera 0 ou 1 et non le mot /home??


non -z teste si la chaine qu'on lui donne est vide ou pas. N'oubliez pas que ce qui se trouve entre $(...) est remplacé par ce qu'affiche la comande, on ne s'occupe donc pas du code retour de find...

Reply

Marsh Posté le 29-11-2005 à 14:02:27    

ok pour le -z, je comprends mieux!!!
 
Pour ce qui est de l'execution de mon script, j'ai le message suivant :  
 
find : 0652-017 -quit est une option incorrecte.
test.sh[6]: test: 0403-004 Spécifiez un paramètre avec cette commande.

Reply

Marsh Posté le 29-11-2005 à 14:02:48    

[quotemsg=757123,6,33451N'oubliez pas que ce qui se trouve entre $(...) est remplacé par ce qu'affiche la comande, on ne s'occupe donc pas du code retour de find...[/quotemsg]
 
D'ailleurs ca marche aussi avec: if [ -z `commande` ]...


---------------
v(^o^)v
Reply

Marsh Posté le 29-11-2005 à 14:08:51    

heaven35 a écrit :

ok pour le -z, je comprends mieux!!!
 
Pour ce qui est de l'execution de mon script, j'ai le message suivant :  
 
find : 0652-017 -quit est une option incorrecte.
test.sh[6]: test: 0403-004 Spécifiez un paramètre avec cette commande.


ben tu peux le virer mais ça va prendre plus de temps... :/
 
regarde dans le man find si y'a pas un équivalent, j'ai pas de AIX sous la main... :o

Reply

Marsh Posté le 29-11-2005 à 14:15:23    

Bon bah j'ai testé tout cela sur un répertoire qui n'a pas été modifié depuis plus d'1 an...
Et mon script me dit que le répertoire a été modifié...
 
if [ -z 'find /testalb -ctime 1 -print' ]
then
echo " rien n'a été modifié"
else
echo " le repertoire a été modifié "
fi
exit 0

Reply

Marsh Posté le 29-11-2005 à 14:15:23   

Reply

Marsh Posté le 29-11-2005 à 14:19:46    

heaven35 a écrit :

Bon bah j'ai testé tout cela sur un répertoire qui n'a pas été modifié depuis plus d'1 an...
Et mon script me dit que le répertoire a été modifié...
 
if [ -z 'find /testalb -ctime 1 -print' ]
then
echo " rien n'a été modifié"
else
echo " le repertoire a été modifié "
fi
exit 0


heu non, pas des guillements, met la commande entre $(...)
 
 
(notez que c'est en partie pour ça que j'aime pas la notation backticks... :o)

Reply

Marsh Posté le 29-11-2005 à 15:23:24    

bon je n'arrive pas à faire fonctionner mon script...
En plus je viens de m'appercevoir que ce que je cherche à faire n'est pas bon... ggggrrrrrrrrr find et l'argument -ctime ça joue sur la modification sur 24h... et ce n'est pas ce que je veux...je craque..2 jours dessus..
 
Quelqu'un aurait une idée ( script ou commande ) pour savoir si un répertoire a été modifié dans l'heure ou depuis la dernière modif???
 

Reply

Marsh Posté le 29-11-2005 à 15:27:05    

find -cmin 60
 
 
:o

Reply

Marsh Posté le 29-11-2005 à 15:29:36    

lol non -cmin ça n'existe pas
ça aurait été trop simple

Reply

Marsh Posté le 29-11-2005 à 15:32:26    

ptain mais installe un find correct, spa possib ça ! :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed