Créer un script qui ping en tâche de fond

darkniko

Membre actif
26 Décembre 2004
158
2
ptipolak91.free.fr
;)Bonjour à tous,
Ayant des soucis de déconnexion avec ma box, j'ai lancé sur deux fenêtres du Terminal la commande suivante afin de savoir quand surviennent les déconnexions :
Bash:
Ping -i 600 192.168.1.254 | perl -nle 'print scalar(localtime), " ", $_'

J'aimerai que cela se fasse en tâche de fond.
Mon but, toutes les 10 minutes exécution de la commande ping, et enregistrement de la commande et de la réponse dans un fichier. (Ou juste de la réponse)

Est ce possible avec AppleScript? Avez vous des liens, des tutos, des idées?

Je ne cherche pas forcément un script tout fait, j'aime trouver les solutions par moi même ;)

Merci d'avance
 
Dernière édition par un modérateur:
Merci, je vais regarder ça.
Il faut donc que je crée un script Shell à exécuter?
Le "on idle" sert à exécuter en arrière plan?
 
Il faut donc que je crée un script Shell à exécuter?

Pas besoin de créer un fichier supplémentaire, tu peux insérer ta ligne de Shell directement dans l'AppleScript. Exemple très simple pour stocker le code source de n'importe quelle URL dans une variable :

AppleScript:
set codeSource to do shell script "curl --max-time 5 " & (quoted form of pageURL)
 
Dernière édition par un modérateur:
Bonsoir,

Un AppleScript basique doit pouvoir ressembler à :
AppleScript:
on idle
do shell script "insère ici ta commande du terminal"
return 600 -- 10 x 60 secondes c'est-à-dire attente de 10 minutes
end idle
 
Dernière édition par un modérateur:
Merci pour vos réponses, voici ce que j'ai pondu. Ne vous arrachez pas les cheveux si ça pique les yeux, je n'ai aucune connaissance dans ce langage :|

AppleScript:
on idle
set resultat to (do shell script ("ping -i 192.168.1.254 | perl -nle 'print scalar(localtime), " ", $_'"))
open for access /Users/Nicolas/Documents/resultatbox.rtf with write permission
write resultat & return to /Users/Nicolas/Documents/resultatbox.rtf
close access /Users/Nicolas/Documents/resultatbox.rtf
return 600
end idle

Seulement quand j'essaie de l'exécuter l'éditeur de script me dit
, attendue mais " trouvée
set resultat to (do shell script ("ping -i 192.168.1.254 | perl -nle 'print scalar(localtime), " ", $_'"))
Vous avez une idée?
Quelles sont les choses à changer?
Et je me pose une question, mon fichier va-t-il s'ouvrir et se fermer à chaque fois? Ou est ce qu'il est possible d'écrire dans le fichier sans l'ouvrir à l'écran.
 
Dernière édition par un modérateur:
Je ne pratique pas applescript, mais ca se fait très bien en shell :
Bloc de code:
#!/bin/sh
while true
do
ping -c 3 adresse.a.pinger >> ping.txt   # un seul > si on ne veux garder que la derniere rafale
sleep 600                                # en secondes
done

Ne pas oublier de faire un chmod a+x sur le fichier, bien sur

Et pour le lancer on tape juste ./ping.sh & sur le terminal (ou nohup ./ping.sh & si on ne veut pas garder de fenêtre terminal)