Création d'un script shell et exécution
Résolu
Nicekloe
Messages postés
79
Date d'inscription
Statut
Membre
Dernière intervention
-
zipe31 Messages postés 36402 Date d'inscription Statut Contributeur Dernière intervention -
zipe31 Messages postés 36402 Date d'inscription Statut Contributeur Dernière intervention -
A voir également:
- Création d'un script shell et exécution
- Classic shell - Télécharger - Personnalisation
- Script vidéo youtube - Guide
- Creation compte gmail - Guide
- Création site web - Guide
- Création d'un compte google - Guide
2 réponses
Salut,
Si la partie clé privée/publique est en place et fonctionnelle, une simple connexion ssh suivie de la commande adéquate devrait suffire amplement ;-)
Bien évidemment, le compte "xxx" devra avoir les droits nécessaires pour éteindre ladite machine.
Si la partie clé privée/publique est en place et fonctionnelle, une simple connexion ssh suivie de la commande adéquate devrait suffire amplement ;-)
ssh xxx@autre_machine 'shutdown -h now'
Bien évidemment, le compte "xxx" devra avoir les droits nécessaires pour éteindre ladite machine.
Salut,
Juste un truc auquel je n'avais pas pensé... lors de la génération des clés, as-tu mis une passphrase ?
Si oui, c'est cette passphrase qu'il te faut donner lorsque le mot de passe t'es demandé.
Juste un truc auquel je n'avais pas pensé... lors de la génération des clés, as-tu mis une passphrase ?
Si oui, c'est cette passphrase qu'il te faut donner lorsque le mot de passe t'es demandé.
Bonjour Danelectro
En réalité vu que je suis bloqué au niveau de la génération des clés pour l'authentification, je n'ai même pas encore écrit de script (ce sur quoi je n'ai même pas encore d'idée).
Alors, ce que tu me conseilles de faire c'est de réessayer la génération de clés pour l'authentification mais cette fois ci en ne mettant pas de passphrase??
En réalité vu que je suis bloqué au niveau de la génération des clés pour l'authentification, je n'ai même pas encore écrit de script (ce sur quoi je n'ai même pas encore d'idée).
Alors, ce que tu me conseilles de faire c'est de réessayer la génération de clés pour l'authentification mais cette fois ci en ne mettant pas de passphrase??
Oui, en gros tu vas faire :
Génération des clés dans /home/ton_user/.ssh (sans passphrase)
Copie de ta clé publique sur la machine distante pour permettre la connexion sans mdp (basée sur user@machine) - on te demandera le mot de passe de la machine distante²
Pour le script c'est tout simple, comme l'a dit @UnGnU, tu ouvres un éditeur de texte (nano), tu y écris :
Puis tu l'enregistres et tu fermes nano (
Pour tester :
Pour en faire une tâche planifiée :
Tu y entres :
Ca veut dire "exécute le script à 22h00 quelque soit le jour, le mois, et le jour de la semaine".
Tu fermes nano comme tout à l'heure et voilà !
¹ N'écris pas le
² ssh-copy-id est en fait un script qui se connecte en SSH à la machine distante et copie ta clé publique dans .ssh/authorized_keys, il a donc besoin de ta clé publique (par défaut : ~/.ssh/id_rsa.pub), et du login/mdp de la machine distante
Génération des clés dans /home/ton_user/.ssh (sans passphrase)
$ ssh-keygen¹
Copie de ta clé publique sur la machine distante pour permettre la connexion sans mdp (basée sur user@machine) - on te demandera le mot de passe de la machine distante²
$ ssh-copy-id login_machine_distante@ip_machine_distante
Pour le script c'est tout simple, comme l'a dit @UnGnU, tu ouvres un éditeur de texte (nano), tu y écris :
#!/bin/bash
ssh login_machine_distante@ip_machine_distante 'shutdown -h now'
Puis tu l'enregistres et tu fermes nano (
Ctrl+O > nom_du_script.sh > Ctrl+X)
Pour tester :
$ ./nom_du_script.sh
Pour en faire une tâche planifiée :
$ crontab -e
Tu y entres :
0 22 * * * /chemin/vers/ton/script.sh
Ca veut dire "exécute le script à 22h00 quelque soit le jour, le mois, et le jour de la semaine".
Tu fermes nano comme tout à l'heure et voilà !
¹ N'écris pas le
$, c'est pour représenter ton prompt
² ssh-copy-id est en fait un script qui se connecte en SSH à la machine distante et copie ta clé publique dans .ssh/authorized_keys, il a donc besoin de ta clé publique (par défaut : ~/.ssh/id_rsa.pub), et du login/mdp de la machine distante
Merci de m'avoir répondu aussi vite
Déjà j'ai essayer avec cette commande mais dès que je valide, c'est la mv courante qui s'éteint et non l'autre.
En plus, je souhaite plutôt automatisé les choses, de sorte que je n'ai pas besoin de me connecter à la MV2 chaque fois et de taper la commande pour qu'elle s'éteigne. Il faudrait que la tâche soit automatique, genre chaque jour à 22h00, le script contenant la commande pour éteindre la MV2 est exécuté et celle-ci est immédiatement éteinte, sans mon intervention.
C'est d'ailleurs pour ça que je parle d'écrire un script shell qui le fera
De plus cette commande est idéale puisqu'il suffit de configurer la crontab avec juste cette commande en paramètre pour que l'action désirée (extinction) de la machine se fasse à l'heure voule.
En gras les commandes, en italique le résultat des commandes.
Je lance la commande " " (qui renvoie le nom de la machine) depuis le PC pi-ole :
Je lance maintenant une connexion ssh vers un autre PC (dénommé brikabrak) avec en paramètre la commande " " :
Le nom renvoyé est bien celui de la machine distante. Donc la commande a bien été exécutée sur la machine distante et non sur la machine locale.