Automatiser une action dans le Terminal

Jean82500

Membre confirmé
27 Août 2021
84
11
74
Bonjour,
je viens de fouiller un peu sur Automator ou Raccourcis et ne trouve pas la solution. Voici le problème :
  • j'utilisais une petite app nommée DNSFlusher pour vider les caches DNS. Bien pratique et rapide. Mais elle semble ne plus exister sur Monterey.
  • j'ai trouvé la commande Terminal qui effectue cette action (sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder)
-Je souhaiterais avoir un "bouton" qui me permette d'exécuter ça en un clic.
Est-ce possible ? Quelqu'un a-t-il une idée ?
Merci d'avance
 
Bonjour,

Dans automator, créer nouveau --> application
1 seule action, dans les utilitaires(barre de gauche) choisi l'action -->Exécuter un script shell --> dans la fenêtre mettre ta commande
Si tu veux éviter d'avoir à entrer ton mot de passe lorsque tu vas exécuter cette appli tu entres echo "mot de passe" avant ta commande...
ce qui donne :

echo "ton_mot_de_passe_de_session" | sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
En remplaçant "ton_mot_de_passe_de_session) par le tien !

Après enregistrement tu auras une appli que tu pourras lancer d'un double clic , ou la glisser dans le dock pour la lancer d'un simple clic comme n'importe quelle autre appli.

Cette appli aurait aussi pu être crée comme service afin de la trouver dans service lors d'un clic droit...
 
Bonjour,

Dans automator, créer nouveau --> application
1 seule action, dans les utilitaires(barre de gauche) choisi l'action -->Exécuter un script shell --> dans la fenêtre mettre ta commande
Si tu veux éviter d'avoir à entrer ton mot de passe lorsque tu vas exécuter cette appli tu entres echo "mot de passe" avant ta commande...
ce qui donne :

echo "ton_mot_de_passe_de_session" | sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
En remplaçant "ton_mot_de_passe_de_session) par le tien !

Après enregistrement tu auras une appli que tu pourras lancer d'un double clic , ou la glisser dans le dock pour la lancer d'un simple clic comme n'importe quelle autre appli.

Cette appli aurait aussi pu être crée comme service afin de la trouver dans service lors d'un clic droit...
Merci, c'est très clair . Je vais essayer ça et te tiens au courant.
 
Bon, je viens d'essayer et voici deux captures d'écran pour te montrer mon problème
1 fenêtre de Automator pour la saisie de commande
2 réponse suite à l'exécution
 

Fichiers joints

  • Capture d’écran 2021-11-14 à 09.46.27.jpg
    Capture d’écran 2021-11-14 à 09.46.27.jpg
    18,1 KB · Affichages: 126
  • Capture d’écran 2021-11-14 à 09.46.42.jpg
    Capture d’écran 2021-11-14 à 09.46.42.jpg
    30,7 KB · Affichages: 127
Il te prévient que la commande sudo exige un mot de passe ...

Essai de faire un copié collé de ta commande directement dans le terminal pour voir si elle est correcte ! si elle passe sans erreur...
 
Tu n'aurais pas oublié un espace ?
il me semble que la syntaxe de la commande est dscacheutil -flushcache ... avec un espace avant le -
vérifie bien ta ligne de commande !...
 
Tu n'aurais pas oublié un espace ?
il me semble que la syntaxe de la commande est dscacheutil -flushcache ... avec un espace avant le -
vérifie bien ta ligne de commande !...
J'avais oublié l'espace effectivement. Mais la commande s'exécute normalement quand je la fais depuis le Terminal. Il me semble après cette correction que cela semble être un problème avec le mot de passe...
 
supprime le deuxième sudo pour vérifier !

echo "ton_mot_de_passe_de_session" | sudo dscacheutil -flushcache ; killall -HUP mDNSResponder

ou peut être:

echo "ton_mot_de_passe_de_session" | sudo dscacheutil -flushcache ; echo "ton_mot_de_passe_de_session" | sudo killall -HUP mDNSResponder

Pour retransmettre le mot de passe au deuxième sudo.
 
supprime le deuxième sudo pour vérifier !

echo "ton_mot_de_passe_de_session" | sudo dscacheutil -flushcache ; killall -HUP mDNSResponder

ou peut être:

echo "ton_mot_de_passe_de_session" | sudo dscacheutil -flushcache ; echo "ton_mot_de_passe_de_session" | sudo killall -HUP mDNSResponder

Pour retransmettre le mot de passe au deuxième sudo.
Je viens de tester et la réponse est toujours la même dans les deux cas. Les guillemets entourant le mot de passe sont-ils requis ?
Tu peux tester ma commande dans le Terminal. Elle s'exécute bien. Mais le mot de passe est requis une fois qu'elle est exécutée...
 
Bon alors je confirme.
Mais ce message m'intrigue : "sudo: a terminal is required to read the password..." Je ne connais pas la syntaxe de la commande echo mais ne manque-t-il pas un argument ? Car c'est ce qui semble bloquer en l'occurrence
 
La bonne commande est:

echo " & "Mot-de-passe" & " | sudo -S dscacheutil -flushcache; echo jcp | sudo -S killall -HUP mDNSResponder

remplace juste (Mot-de-passe) par le tien en laissant les guillemets. j' avais juste oublié l'option (-S) , j'avais fait un copié collé de ta commande ! LOL
 
Dernière édition:
Voilà la ligne de commande exacte que je passe dans Automator (copier/coller de ma commande) :
echo " & "xxxxxx" & " | sudo -S dscacheutil -flushcache; echo jcp | sudo -S killall -HUP mDNSResponder
"xxxxxx" est mon mot de passe et (capture ci-dessous) la réponse...
Désespérant !
 

Fichiers joints

  • Capture d’écran 2021-11-15 à 09.40.46.jpg
    Capture d’écran 2021-11-15 à 09.40.46.jpg
    36,6 KB · Affichages: 107
décidément les lundis sont dur pour moi !
les copiés collés ne me réussissent pas , j'avais mis mes tests en applescript...

echo "XXXX" | sudo -S dscacheutil -flushcache; echo "jXXXX" | sudo -S killall -HUP mDNSResponder

le mot de passe à mettre 2 fois

Dis moi si là c'est "ENFIN" bon !
 
Je n'ai plus de message d'erreur !
Dernier doute à lever : suis-je sur que mon cache DNS est bien vidé ???
Sinon, bravo et merci pour ta patience :):):)
 
si tout passe sans message c'est que la commande à bien été exécutée !...

ENFIN ! :banghead:

content pour toi :up: :D