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 11/10/2012, à 19:52

weezixx

Détection de fichier => script enclenché

Bonjour,

comment faire pour que dès que, par exemple, j'ai dl un fichier .rar, qu'il soit automatiquement extrait ?

Ou la même chose pour mes fichiers .xtm qu'ils soient compilées.

En gros j'aurai aimé faire un script ou ligne de commande pour dire que dès qu'un fichier apparaît telle commande soit lancée.

Merci encore ;-)

Hors ligne

#2 Le 11/10/2012, à 20:14

Maisondouf

Re : Détection de fichier => script enclenché

Linux c'est fort, mais il reste certaines choses à faire à la main...

Maintenant, si tes fichiers sont toujours au même endroit quand tu les télécharges, tu peux créer une tâche "cron" pour surveiller cet endroit et lancer la commande appropriée.


ASUS M5A88-v EVO avec AMD FX(tm)-8120 Eight-Core Processor,  OS principal Precise 12.04.1 LTS 63bits½
Bricoleur, menteur, inculte, inadapté social et mythomane, enfin d'après certains....
"the secret of my form is summed up in two words, no sport" (Winston Churchill)

Hors ligne

#3 Le 11/10/2012, à 20:42

Postmortem

Re : Détection de fichier => script enclenché

Salut,
Linux c'est fort et ça sait faire ce que tu demandes !
Voir ici


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#4 Le 11/10/2012, à 21:02

weezixx

Re : Détection de fichier => script enclenché

Et si je fais un truc du genre :

je fais une recherche find, que je boucle avec while en booléen ? Tant que la condition n'est pas respectée il continue de chercher, et dès qu'elle est égale à 1 hop il fait le script ?

Hors ligne

#5 Le 11/10/2012, à 21:23

Postmortem

Re : Détection de fichier => script enclenché

Tu peux utiliser find ainsi :

while true
do
   find /chemin/de/recherche -name '*.rar' -type f -exec unrar {} \;
   sleep 60
done

Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#6 Le 11/10/2012, à 21:31

weezixx

Re : Détection de fichier => script enclenché

J'ai fait un essaie de inotify, j'ai créé un dossier test, et j'ai demandé qu'à l'apparition du fichier test.txt soit créé le fichier hello_world.txt

notifywait -mrq -e CREATE --format %w%f /home/mister_why/Documents/test/ | while read test.txt ; do touch hello_world.txt ; done

mais ça me répond :

bash: read: « test.txt » : identifiant non valable

pour n'importe quel fichier que je créé (via une autre console), comme test.txt ou test.ii etc …

Hors ligne

#7 Le 11/10/2012, à 21:39

pingouinux

Re : Détection de fichier => script enclenché

Salut,
Après read, c'est un nom de variable qui est attendu. Je verrais plutôt quelque chose comme ça :

notifywait -mrq -e CREATE --format %w%f /home/mister_why/Documents/test/test.txt | while read var ; do touch hello_world.txt ; done

Ajouté :
Soit le fichier n'existe pas, et la commande retourne un message d'erreur
Soit il existe, et on ne peut pas le créer, donc la commande ne sert à rien

Si on supprime le fichier avant de le recréer, la commande ne le voit plus

Dernière modification par pingouinux (Le 11/10/2012, à 23:17)

Hors ligne

#8 Le 11/10/2012, à 21:44

weezixx

Re : Détection de fichier => script enclenché

@ pingouinux : j'ai du un peu modifier le code

inotifywait -mrq -e CREATE --format %w%f /home/mister_why/Documents/test/ | while read var ; do touch hello_world.txt ; done

et aucun résultat sad

@ Postmortem : ton code while fonctionne, tu peux m'aider pour inotify ?

Merci encore

Dernière modification par weezixx (Le 11/10/2012, à 21:44)

Hors ligne

#9 Le 11/10/2012, à 21:56

Postmortem

Re : Détection de fichier => script enclenché

J'ai jamais utilisé ça, je savais que ça existait, c'est tout.
Et suis sur mon tel là donc je peux pas tester.
Mais si pingouinux est encore par là, t'es entre de bonnes mains !
Sinon je pourrai regarder demain.


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#10 Le 11/10/2012, à 23:02

pingouinux

Re : Détection de fichier => script enclenché

Je ne connaissais pas inotify; je viens de l'installer et de le tester. Pour voir si ça donne un résultat, fais plutôt ceci :

inotifywait -mrq -e create --format "%e %w%f" /home/mister_why/Documents/test/ | while read var ; do echo "$var"; done

Hors ligne

#11 Le 11/10/2012, à 23:17

weezixx

Re : Détection de fichier => script enclenché

Et la réponse est : D la réponse D

CREATE /home/mister_why/Documents/test/test.txt

Hors ligne

#12 Le 11/10/2012, à 23:21

weezixx

Re : Détection de fichier => script enclenché

Avec ce code :

inotifywait -mrq -e create --format "%e %w%f" /home/mister_why/Documents/test/ | while read var ; do touch hello_world.txt ; done

Ça fonctionne, ça créé bien hello_world.txt

Mais si à présent je veux spécifier un fichier ? Comme test123.rar

Dès que test123.rar apparaît hop il le décompresse

Hors ligne

#13 Le 11/10/2012, à 23:55

pingouinux

Re : Détection de fichier => script enclenché

Regarde les remarques que j'ai ajoutées en #7. Je pense qu'il faut continuer à surveiller le répertoire, et tester dans la boucle si le fichier est test123.rar .

rep=/home/mister_why/Documents/test/
cd "$rep"
inotifywait -mrq -e create --format "%f" "$rep" | while read var; do [[ "$var" == test123.rar ]] && unrar "$var"; done 

Hors ligne

#14 Le 12/10/2012, à 00:37

Maisondouf

Re : Détection de fichier => script enclenché

weezixx a écrit :

Et la réponse est : D la réponse D

C'est votre dernier mot ?


ASUS M5A88-v EVO avec AMD FX(tm)-8120 Eight-Core Processor,  OS principal Precise 12.04.1 LTS 63bits½
Bricoleur, menteur, inculte, inadapté social et mythomane, enfin d'après certains....
"the secret of my form is summed up in two words, no sport" (Winston Churchill)

Hors ligne

#15 Le 12/10/2012, à 00:53

weezixx

Re : Détection de fichier => script enclenché

Maisondouf a écrit :
weezixx a écrit :

Et la réponse est : D la réponse D

C'est votre dernier mot ?

C'est votre ultime bafouille ? ^^

Je continuerai de voir ça demain ;-)

Merci encore !

Ça c'est de la communauté

Hors ligne