Script shell/bash pour recuperer des infos sur un pc a distant
Résolu/Fermé
c199
Messages postés
26
Date d'inscription
lundi 6 janvier 2020
Statut
Membre
Dernière intervention
7 février 2020
-
Modifié le 9 janv. 2020 à 12:49
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 27 janv. 2020 à 15:27
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 27 janv. 2020 à 15:27
A voir également:
- Script shell/bash pour recuperer des infos sur un pc a distant
- Comment recuperer un message supprimé sur whatsapp - Guide
- Remettre a zero un pc - Guide
- Test performance pc - Guide
- Script vidéo youtube - Guide
- Google meet pour pc - Télécharger - Messagerie
15 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
7 janv. 2020 à 10:02
7 janv. 2020 à 10:02
Salut,
À lire… merci ;-))
À lire… merci ;-))
c199
Messages postés
26
Date d'inscription
lundi 6 janvier 2020
Statut
Membre
Dernière intervention
7 février 2020
7 janv. 2020 à 10:32
7 janv. 2020 à 10:32
ok dacc
alors on peut me donner des axes de recherches
svp
merci d'avance
alors on peut me donner des axes de recherches
svp
merci d'avance
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
7 janv. 2020 à 10:35
7 janv. 2020 à 10:35
Dès que tu nous aura montré ce que tu as déjà trouvé (commandes en rapport avec ce qui t'est demandé), on t'aidera…
c199
Messages postés
26
Date d'inscription
lundi 6 janvier 2020
Statut
Membre
Dernière intervention
7 février 2020
8 janv. 2020 à 12:05
8 janv. 2020 à 12:05
CE QUE JAI TROUVE SUR LE NET
#!/bin/bash
## INFOS
zenity --info --title='iZard version O.2 Alpha' --text="<b>Ce logiciel se charge de vous donner un maximum d'information sur votre ordinateur</b>
_______________________________________________________________________________________________________
<b>Informations générales</b>
Nom de l'ordinateur : `uname -n`
Système d'exploitation : `uname -o`
Version du noyau Linux : `uname -r`
Structure du processeur : `uname -m`
Système d'exploitation : `lsb_release -a | grep Distributor | cut -f 2` ## première modif ##
Version du système : `lsb_release -a | grep Release | cut -f 2` - `lsb_release -a | grep Codename | cut -f 2` ## deuxième modif ##
<b>Carte Graphique</b>
Accélération Graphique : `glxinfo | sed -n "s/direct rendering: //p"`
ID et Nom de la carte graphique : `lspci | grep VGA | cut -d : -f 3` ## dernière modif ##
<b>Processeur(s)</b>
`cat /proc/cpuinfo | grep vendor_id | sed "s/vendor_id :/Marque : /g"`
`cat /proc/cpuinfo | grep bogomips | sed "s/bogomips :/Bogomips : /g"`
`cat /proc/cpuinfo | grep model | sed "s/model :/Numéro du model : /g" | sed "s/model name :/Nom du model : /g"`
`cat /proc/cpuinfo | grep MHz | sed "s/cpu MHz :/Fréquence du (des) processeurs : /g"`
`cat /proc/cpuinfo | grep cache | sed "s/cache size :/Taille du cache : /g"`"
##
Système d'exploitation : `lsb_release -i | grep Distributor | cut -f 2`
Version du système : `lsb_release -r | grep Release | cut -f 2` - `lsb_release -c | grep Codename | cut -f 2`
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
8 janv. 2020 à 13:14
8 janv. 2020 à 13:14
Merci.
Et donc ??? Qu'est-ce que tu as pondu qui correspond à ta demande ?
Et donc ??? Qu'est-ce que tu as pondu qui correspond à ta demande ?
c199
Messages postés
26
Date d'inscription
lundi 6 janvier 2020
Statut
Membre
Dernière intervention
7 février 2020
8 janv. 2020 à 16:55
8 janv. 2020 à 16:55
prendre des infos d'un ordi mais comme je le disais
apres je cherche juste des aiguillemts de OU chercher mes infos pour faire le travail
je sais que c'est pas dans l'ordre mais pour l'instant jai juste des commandes de comment recuperer certains infos
je sais aussi que jai meme pas le debut mais je sais que jai un commencement
donc malgre tout ca si vous pouvez juste m'aiguiller ?
apres je cherche juste des aiguillemts de OU chercher mes infos pour faire le travail
je sais que c'est pas dans l'ordre mais pour l'instant jai juste des commandes de comment recuperer certains infos
je sais aussi que jai meme pas le debut mais je sais que jai un commencement
donc malgre tout ca si vous pouvez juste m'aiguiller ?
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
Modifié le 8 janv. 2020 à 17:15
Modifié le 8 janv. 2020 à 17:15
Dans le script que tu as trouvé sur la toile, tu as certaines commandes qui donnent quelques uns des résultats attendu par ton maître de stage.
Pour t'aiguiller, ces commandes se trouvent entre quotes inverses ( `...` ).
Tu copies/colles (ou recopies) ces commandes¹ dans un terminal (sans les quotes inverses) sur ton système GNU/Linux, et tu vois ce quelles retournent.
N'oublie pas que pour chaque commande, il existe une page de "man" associée (
¹ Une par une et tu essaies de comprendre ce qu'elles font et te renvoient.
Pour t'aiguiller, ces commandes se trouvent entre quotes inverses ( `...` ).
Tu copies/colles (ou recopies) ces commandes¹ dans un terminal (sans les quotes inverses) sur ton système GNU/Linux, et tu vois ce quelles retournent.
N'oublie pas que pour chaque commande, il existe une page de "man" associée (
man commande) qui te donneras l'explication sur la commande et la syntaxe pour l'utiliser.
¹ Une par une et tu essaies de comprendre ce qu'elles font et te renvoient.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
c199
Messages postés
26
Date d'inscription
lundi 6 janvier 2020
Statut
Membre
Dernière intervention
7 février 2020
9 janv. 2020 à 09:32
9 janv. 2020 à 09:32
jai aussi trouve une fonction "dmidecode" je voulais savoir est ce que c'etait bien et comment je pouvais l'utiliser ?
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
9 janv. 2020 à 09:38
9 janv. 2020 à 09:38
Dans un terminal tape
man dmidecodetu auras toutes les options possibles pour l'utiliser.
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
9 janv. 2020 à 13:11
9 janv. 2020 à 13:11
Bonjour c199
Comme le dit zipe31, il faut forger pour devenir forgeron. Te donner les réponses ne t'aidera pas à trouver. Mais tes recherches ont déjà porté leur fruit puisque le script que tu as trouvé liste quelques unes des commandes dont tu auras besoin.
Pré-requis
Commence par te familiariser avec le shell. Tu ne peux pas t'exprimer dans une langue avant de l'avoir apprise.
Donc un tutoriel de base serait un bon début, pour voir comment taper des commandes, comment écrire un premier script etc.
Commence par du simple (comment lancer une commande, comment écrire dans le terminal) puis augmente le progressivement la difficulté (comment faire un test, comment faire une boucle...). Tu peux par exemple regarder ce tutoriel mais n'hésite pas à en chercher d'autres.
Démarche générale
1) Cherche la commande qui te donnera des infos sur ce que tu veux. Une recherche google t'y aidera. Par exemple dans le script que tu as trouvé,
2) Extraie de ce résultat la partie qui t'intéresse. Des commandes telles que
3) Si tu parviens à écrire dans un terminal, écrire dans un fichier de log serait aisé. On verra plus tard comment interagir avec une base de données, mais encore faudrait il préciser laquelle (mysql, postgresql, etc...), le schéma choisi, etc. Bref je te conseille de laisser ce côté pour plus tard et de te concentrer d'abord sur la partie shell.
4) Si tu parviens à faire marcher ton script en local, il sera possible de le copier sur les machines à inspecter et l'exécuter sur chacune d'elle. Ici il faudrait préciser comment est initialisé cette analyse. Notamment, comment se connecte-t'on au machine analysées (en ssh ?). Qui initie cette analyse ? Chaque machine, périodiquement (e.g. grâce à
Exemple : nombre de cœurs
Afin de te guider, je te montre comment on arrive au nombre de cœurs car tu y es presque. Ensuite essaye de reproduire la démarche pour le reste.
1) L'état du système est maintenu par le noyau linux dans
2) La commande
À ce stade la commande est donc :
En regardant ce que ça retourne, on voit que les processeurs sont identifiés (voir ligne
Par exemple sur ma machine, j'obtiens :
Il suffit donc de compter le nombre de lignes pour savoir le nombre de cœur. Ceci peut être réalisé avec la commande
On peut éventuellement produire un message en injectant ce résultat dedans :
Remarque : La syntaxe
Bonne chance
Comme le dit zipe31, il faut forger pour devenir forgeron. Te donner les réponses ne t'aidera pas à trouver. Mais tes recherches ont déjà porté leur fruit puisque le script que tu as trouvé liste quelques unes des commandes dont tu auras besoin.
Pré-requis
Commence par te familiariser avec le shell. Tu ne peux pas t'exprimer dans une langue avant de l'avoir apprise.
Donc un tutoriel de base serait un bon début, pour voir comment taper des commandes, comment écrire un premier script etc.
Commence par du simple (comment lancer une commande, comment écrire dans le terminal) puis augmente le progressivement la difficulté (comment faire un test, comment faire une boucle...). Tu peux par exemple regarder ce tutoriel mais n'hésite pas à en chercher d'autres.
Démarche générale
1) Cherche la commande qui te donnera des infos sur ce que tu veux. Une recherche google t'y aidera. Par exemple dans le script que tu as trouvé,
cat /proc/cpuinfoliste les infos sur les CPUs du PC. Généralement tu peux trouver des informations dans
/etc(configuration),
/proc(état du noyau),
/var/(état des applications), ou au travers de commandes d'administration dédiées (
ps,
ip,
netstat, etc.)
2) Extraie de ce résultat la partie qui t'intéresse. Des commandes telles que
grep,
wcou
cutt'y aideront. Le
mancorrespondant t'y aidera (par exemple tape dans un terminal
man wc, q pour quitter) À ce stade commence par voir si tu arrives à écrire dans le terminal un résumé des informations ainsi extraites.
3) Si tu parviens à écrire dans un terminal, écrire dans un fichier de log serait aisé. On verra plus tard comment interagir avec une base de données, mais encore faudrait il préciser laquelle (mysql, postgresql, etc...), le schéma choisi, etc. Bref je te conseille de laisser ce côté pour plus tard et de te concentrer d'abord sur la partie shell.
4) Si tu parviens à faire marcher ton script en local, il sera possible de le copier sur les machines à inspecter et l'exécuter sur chacune d'elle. Ici il faudrait préciser comment est initialisé cette analyse. Notamment, comment se connecte-t'on au machine analysées (en ssh ?). Qui initie cette analyse ? Chaque machine, périodiquement (e.g. grâce à
anacron) ou un moniteur (e.g. grâce à
parallel-ssh) ?
Exemple : nombre de cœurs
Afin de te guider, je te montre comment on arrive au nombre de cœurs car tu y es presque. Ensuite essaye de reproduire la démarche pour le reste.
1) L'état du système est maintenu par le noyau linux dans
/proc. On le sait car c'est stipulé dans la FHS. En fouillant ce répertoire, on trouve un fichier dont le nom est suspect :
/proc/cpuinfo.
2) La commande
catretourne la concaténation du contenu de plusieurs fichiers. Quand il n'y en a qu'un, cela revient à écrire son contenu dans la sortie standard. Si la commande est lancée dans un terminal, cela affiche donc le contenu du fichier dans le terminal, et on peut exploiter ce résultat en faisant des pipes (prononcer païpe).
À ce stade la commande est donc :
cat /proc/cpuinfo
En regardant ce que ça retourne, on voit que les processeurs sont identifiés (voir ligne
processor : ...) donc ces lignes permettent de déterminer combien il y en a :
cat /proc/cpuinfo | grep "processor"
Par exemple sur ma machine, j'obtiens :
(mando@silk) (~) $ cat /proc/cpuinfo | grep processor
processor : 0
processor : 1
processor : 2
processor : 3
Il suffit donc de compter le nombre de lignes pour savoir le nombre de cœur. Ceci peut être réalisé avec la commande
wcet comme l'indique
man wc, avec l'option
-l. On obtient alors :
(mando@silk) (~) $ cat /proc/cpuinfo | grep processor | wc -l
4
On peut éventuellement produire un message en injectant ce résultat dedans :
(mando@silk) (~) $ echo "La machine a" $(cat /proc/cpuinfo | grep processor | wc -l) "CPUs"
La machine a 4 CPUs
Remarque : La syntaxe
$( ... )est spécifique à bash, un shell particulier. Pour rester générique tu peux utiliser
` ... `(backquotes) à la place.
Bonne chance
c199
Messages postés
26
Date d'inscription
lundi 6 janvier 2020
Statut
Membre
Dernière intervention
7 février 2020
9 janv. 2020 à 14:42
9 janv. 2020 à 14:42
merci je vous montrerai mon scrypt quand jaurai plus avance sur mes recherche
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
9 janv. 2020 à 15:09
9 janv. 2020 à 15:09
Oui alors sinon ça s'écrit "script" :-)
Merci de soigner l'orthographe (pluriels, ponctuation, etc), on n'est pas sur facebook :-)
Merci de soigner l'orthographe (pluriels, ponctuation, etc), on n'est pas sur facebook :-)
c199
Messages postés
26
Date d'inscription
lundi 6 janvier 2020
Statut
Membre
Dernière intervention
7 février 2020
13 janv. 2020 à 15:43
13 janv. 2020 à 15:43
j'ai beaucoup avancé sur ce script voila mes dernière trouvailles
il veut que je fasse une question au début du script pour demander sur quel ip je veux me connecter .Ensuite ça se connecte en ssh(l'@ip ça doit être une variable | pour la connexion en ssh) et lance ce script ci-dessus puis sa fait un transfère de fichier vers un serveur NAS avec des login(du coup a mon avis je dois créer des variables pour ça) et a la fin sa doit se déconnecter du ssh et mettre fin au script
comment faire ou plutôt ou chercher ?
#!/bin/bash
#info report sur ordi
#creation fichier log
#info sur @ip
echo " @ip est " $(ifconfig | grep inet | grep netmask | grep broadcast)
#info nom de machine
echo " le nom de la machine est :" $(cat /etc/hostname)
#info RAM
echo "RAM :" $(free -h)
#x32/64 BITS
echo " cette version est :" $(arch) "BITS"
#nb de COEUR + model
echo "la machine a " $(cat /proc/cpuinfo | grep processor | wc -l) "coeur"
echo "le model " $(cat /proc/cpuinfo | grep ' model name')
il veut que je fasse une question au début du script pour demander sur quel ip je veux me connecter .Ensuite ça se connecte en ssh(l'@ip ça doit être une variable | pour la connexion en ssh) et lance ce script ci-dessus puis sa fait un transfère de fichier vers un serveur NAS avec des login(du coup a mon avis je dois créer des variables pour ça) et a la fin sa doit se déconnecter du ssh et mettre fin au script
comment faire ou plutôt ou chercher ?
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
13 janv. 2020 à 18:38
13 janv. 2020 à 18:38
Salut,
Félicitations, tu as bien bossé.
On va commencer par corriger ou améliorer quelques unes de tes commandes…
Pour l'IP, pas la peine de chercher avec 3 motifs, d'autant plus qu'ils sont sur la même ligne, donc un seul suffit, mais pas n'importe lequel, sinon tu vas remonter des infos inutiles (comme l'interface local (lo)). Le plus pertinent semble être le "broadcast" à mon avis.
Donc un petit serait pas mal :
Mais, la commande
Idem pour le nom de la machine, il existe une commande native (
Pour le nombre de cœurs, plutôt écrire la commande comma ceci :
Pour la suite de ton exercice, notamment pour le menu, il existe une commande interne au bash qui s'appelle
Voilà ce qu'on peut faire avec :
Le code que j'ai utilisé :
Pour les connexions ssh, on verra plus tard.
Félicitations, tu as bien bossé.
On va commencer par corriger ou améliorer quelques unes de tes commandes…
Pour l'IP, pas la peine de chercher avec 3 motifs, d'autant plus qu'ils sont sur la même ligne, donc un seul suffit, mais pas n'importe lequel, sinon tu vas remonter des infos inutiles (comme l'interface local (lo)). Le plus pertinent semble être le "broadcast" à mon avis.
Donc un petit serait pas mal :
$ ifconfig | egrep -o '\b.*broadcast [^ ]*'
inet 192.168.10.80 netmask 255.255.255.0 broadcast 192.168.10.255
inet 192.168.200.120 netmask 255.255.255.0 broadcast 192.168.200.255
Mais, la commande
ifconfigtend à devenir désuette, il est préférable de lui préférer la commande "
ip" :
$ ip a | grep -o 'inet.*brd [[:digit:]\.]*'
inet 192.168.10.80/24 brd 192.168.10.255
inet 192.168.200.120/24 brd 192.168.200.255
Idem pour le nom de la machine, il existe une commande native (
hostname) pour ça (pas la peine de faire appel à la commande
cat) :
$ hostname
Aspire
Pour le nombre de cœurs, plutôt écrire la commande comma ceci :
$ echo "la machine a $(cat /proc/cpuinfo | grep processor | wc -l) coeur(s)"
la machine a 4 coeur(s)
Pour la suite de ton exercice, notamment pour le menu, il existe une commande interne au bash qui s'appelle
select(
man bashou help select pour plus d'infos).
Voilà ce qu'on peut faire avec :
Le code que j'ai utilisé :
#! /bin/bash # Nettoyage de l'écran clear # Initialisation liste IP set 192.168.10.77 192.168.10.203 192.168.10.201 192.168.10.204 # Définition du prompt de select PS3="Faites votre choix : " # Affichage de la liste et exécution des commandes echo "Liste des IP :" select adress in $@ do echo "Vous avez choisi l'adresse : ${adress}" echo echo "Vérifions si cette adresse est en écoute sur le réseau…" echo "ping -c1 ${adress}" sleep 2 ping -c1 "${adress}" echo break done
Pour les connexions ssh, on verra plus tard.
c199
Messages postés
26
Date d'inscription
lundi 6 janvier 2020
Statut
Membre
Dernière intervention
7 février 2020
14 janv. 2020 à 11:25
14 janv. 2020 à 11:25
on est en réseau avec plus de 700 poste avec un sous reseau par local
je veux pas toute les mettre dans mon script
IP: 10.66.||sous-réseau||POSTE
j'ai pas envie de noter les 700 @ip
mais juste l'@ip du poste qu'il veut la config
je veux pas toute les mettre dans mon script
IP: 10.66.||sous-réseau||POSTE
j'ai pas envie de noter les 700 @ip
mais juste l'@ip du poste qu'il veut la config
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
14 janv. 2020 à 13:36
14 janv. 2020 à 13:36
Je ne t'ai donné qu'un exemple, sans connaître tes besoins réels. C'est à toi d'adapter !
c199
Messages postés
26
Date d'inscription
lundi 6 janvier 2020
Statut
Membre
Dernière intervention
7 février 2020
Modifié le 14 janv. 2020 à 11:36
Modifié le 14 janv. 2020 à 11:36
MON NOUVEAU CODE
#!/bin/bash
#info report sur ordi
#création fichier log
#connaitre @ip pour subnet
read -p 'quel @ip interroger ?' ip
#variable prédéfini pour mot de passe du ssh
mdp='Password!'
#vérification des login et mot de passe
echo "le login est : $ip"#sa sera @ip quon as mit au prompt#
echo "le mot de passe est : $mdp"
#connexion ssh
echo $(ssh -a -4 root@$ip)
#POUR LE MOT DE PASSE J'ARRIVE pas A TROUVER UN MOYEN de le rentrer automatiquement#
#info sur @ip
echo " @ip est " $(ip a | grep -o 'inet.*brd [[:digit:]\.]*')#1ER MODIF#
#info nom de machine
echo " le nom de la machine est :" $(hostname) #2EME MODIF#
#info RAM
echo "RAM :" $(free -h)
#x32/64 BITS
echo " cette version est :" $(arch) "BITS"
#nb de COEUR + model
echo "la machine a " $(cat /proc/cpuinfo | grep processor | wc -l) "coeur(s)"
echo "le model " $(cat /proc/cpuinfo | grep ' model name')
c199
Messages postés
26
Date d'inscription
lundi 6 janvier 2020
Statut
Membre
Dernière intervention
7 février 2020
14 janv. 2020 à 14:50
14 janv. 2020 à 14:50
PS: petite modif
#!/bin/bash
#info report sur ordi
#création fichier log
#connaitre @ip pour subnet
read -p 'quel @ip interroger ?' ip
#vérification des login et mot de passe
echo "le login est : $ip"#sa sera @ip quon as mit au prompt#
#connexion ssh
echo $(ssh -a -4 root@$ip)
#POUR LE MOT DE PASSE J'ARRIVE pas A TROUVER UN MOYEN de le rentrer automatiquement mais c'est pas grave#
#je rentre le mot de passe manuellement mais il veut pas continuer plus #
#et plus aucune touche ne fonctionne après ça je suis obliger de fermer le terminal #
#info sur @ip
echo " @ip est " $(ip a | grep -o 'inet.*brd [[:digit:]\.]*')#1ER MODIF#
#info nom de machine
echo " le nom de la machine est :" $(hostname) #2EME MODIF#
#info RAM
echo "RAM :" $(free -h)
#x32/64 BITS
echo " cette version est :" $(arch) "BITS"
#nb de COEUR + model
echo "la machine a " $(cat /proc/cpuinfo | grep processor | wc -l) "coeur(s)"
echo "le model " $(cat /proc/cpuinfo | grep ' model name')
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
>
c199
Messages postés
26
Date d'inscription
lundi 6 janvier 2020
Statut
Membre
Dernière intervention
7 février 2020
14 janv. 2020 à 15:48
14 janv. 2020 à 15:48
Pour ssh sans mot de passe, il te faut créer des clés : Comment se connecter en SSH sans mot de passe ?
Quand au reste du script, pour qu'il s'exécute sur la machine distante, il faut soit appeler un autre script où tu auras mis les commandes à exécuter (
Quand au reste du script, pour qu'il s'exécute sur la machine distante, il faut soit appeler un autre script où tu auras mis les commandes à exécuter (
ssh login@Machine 'bash -s' < local_script.sh), soit formater ta commande ssh pour qu'elle exécute un here document.
c199
Messages postés
26
Date d'inscription
lundi 6 janvier 2020
Statut
Membre
Dernière intervention
7 février 2020
14 janv. 2020 à 16:14
14 janv. 2020 à 16:14
desole zipe31 je comprend rien peut tu me le reexpliquer plus clariement STP _/\_
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
14 janv. 2020 à 17:58
14 janv. 2020 à 17:58
Pour te connecter en SSH sans mot de passe il te faut générer des clés d'authentification (voir et lire mon lien ci-dessus) !
Pour exécuter des commandes contenues dans un script (par exemple nommé
Ou alors dans le même script en utilisant la syntaxe :
Pour exécuter des commandes contenues dans un script (par exemple nommé
local_script.sh) via ssh il te faut appeler le script contenant les commandes de cette façon :
ssh login@Machine 'bash -s' < local_script.sh
Ou alors dans le même script en utilisant la syntaxe :
ssh login@Machine << 'ENDSSH'
tes commandes
…
…
etc.
ENDSSH
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
>
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
Modifié le 14 janv. 2020 à 18:51
Modifié le 14 janv. 2020 à 18:51
c199
Messages postés
26
Date d'inscription
lundi 6 janvier 2020
Statut
Membre
Dernière intervention
7 février 2020
>
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
Modifié le 15 janv. 2020 à 14:34
Modifié le 15 janv. 2020 à 14:34
le 'ENDSSH' c'est une commande ou je dois le remplacer par autre chose
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
>
c199
Messages postés
26
Date d'inscription
lundi 6 janvier 2020
Statut
Membre
Dernière intervention
7 février 2020
15 janv. 2020 à 15:58
15 janv. 2020 à 15:58
C'est la façon de signifier que le
Il faut que ce soit le même que celui mis après les 2 chevrons qui commencent le
Après c'est au choix :
here documentest fini.
Il faut que ce soit le même que celui mis après les 2 chevrons qui commencent le
here document.
Après c'est au choix :
commande << 'EOF'
…
…
EOF
commande << 'FIN'
…
…
FIN
c199
Messages postés
26
Date d'inscription
lundi 6 janvier 2020
Statut
Membre
Dernière intervention
7 février 2020
Modifié le 21 janv. 2020 à 15:00
Modifié le 21 janv. 2020 à 15:00
j'y arrive pas et j'arrive toujours pas a comprendre comment ca doit fonctionner
mon code
ce que sa me retourne :
quel @ip interroger : 192.168.10.25
./info.sh :ligne 10 avertissement "here document" a la ligne 10 delimite par la fin du fihier (au lieu de "FIN")
./info.sh:ligne 9 avertissement "here document" a la ligne 9 delimite par la fin du fihier (au lieu de "FIN")
Pseudo-Terminal will nit be allocated because stdin is nit a terminal
mon code
read -p 'quel @ip interroger ?' ip
echo $(ssh root@$ip <<-FIN)
commande 1
commande 2
commande 3
commande 4
FIN # ou $(FIN)#
ce que sa me retourne :
quel @ip interroger : 192.168.10.25
./info.sh :ligne 10 avertissement "here document" a la ligne 10 delimite par la fin du fihier (au lieu de "FIN")
./info.sh:ligne 9 avertissement "here document" a la ligne 9 delimite par la fin du fihier (au lieu de "FIN")
Pseudo-Terminal will nit be allocated because stdin is nit a terminal
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
21 janv. 2020 à 15:34
21 janv. 2020 à 15:34
Dans mes exemples, j'ai mis un "-" (tiret) avant le mot-clé FIN ? Non ! Donc…
Le tiret sert pour tout autre chose.
Dans mon exemple il y a des quotes simples autour du mot 'FIN' ce n'est pas pour faire joli ;-\
Quant à l'erreur
Le tiret sert pour tout autre chose.
Dans mon exemple il y a des quotes simples autour du mot 'FIN' ce n'est pas pour faire joli ;-\
Quant à l'erreur
Pseudo-Terminal will nit be allocated because stdin is nit a terminalil faut rajouter l'option "-T" dans ta commande ssh :
ssh -T login@IP
c199
Messages postés
26
Date d'inscription
lundi 6 janvier 2020
Statut
Membre
Dernière intervention
7 février 2020
Modifié le 24 janv. 2020 à 11:22
Modifié le 24 janv. 2020 à 11:22
je ne comprend rien a cette histoire de
est ce que quand tu met du code a reecrire tu peux le mettre en sorte que quand je le copie il marche ? car quand je recopie mot pour mot ils me mettent que je dois mettre des
VOICI MON CODE :
pour le 'FIN' j'ai tout essaye
apres il me mettent des erreur commes :
apres avoir pinger ca me met
./info.sh: ligne 17: avertissement : a la ligne 17 delimite par la fin du fichier ( au lieu de FIN)
./info.sh: ligne 16: avertissement : a la ligne 16 delimite par la fin du fichier ( au lieu de FIN)
apres il me demande le mot de passe (je rentre le bon et il marche)
connection closed by 192.168.10.32 port 22
ca contine mon script enme donnant les info mais de mon ordi
./info.sh: ligne 31 : FIN : commande intoruvable
ou des fois quand je met une @ip hors du site ou je suis jai les erreurs suivantes :
the authencity of host cant be etablished
ECDSA key fingerprint is (trop long pour le reecrire)
root@192.168.1.38 's password :
mesg: ttyname failed : Ioctl inaproprie pour un peripherique
here document
est ce que quand tu met du code a reecrire tu peux le mettre en sorte que quand je le copie il marche ? car quand je recopie mot pour mot ils me mettent que je dois mettre des
$et autre chose qui manque (je suis sur du linux /ubuntu )
VOICI MON CODE :
#!/bin/bash read -p 'quel @ip interroger ?' ip #VERIFICATION DE @IP echo "vous avez choisi $ip" #a-t-on vrm besoin de mettre echo a chaque fois # echo echo $(ping -c4 $ip) sleep 5 #CONNEXION SSH $(ssh -T root@$ip <<'FIN') echo "-------------------" echo "le nom de la machine est :" $(hostname) echo "la machine a " $(cat /proc/meminfo | grep processor | wc -l) "coeur(s)" 'FIN'
pour le 'FIN' j'ai tout essaye
apres il me mettent des erreur commes :
apres avoir pinger ca me met
./info.sh: ligne 17: avertissement : a la ligne 17 delimite par la fin du fichier ( au lieu de FIN)
./info.sh: ligne 16: avertissement : a la ligne 16 delimite par la fin du fichier ( au lieu de FIN)
apres il me demande le mot de passe (je rentre le bon et il marche)
connection closed by 192.168.10.32 port 22
ca contine mon script enme donnant les info mais de mon ordi
./info.sh: ligne 31 : FIN : commande intoruvable
ou des fois quand je met une @ip hors du site ou je suis jai les erreurs suivantes :
the authencity of host cant be etablished
ECDSA key fingerprint is (trop long pour le reecrire)
root@192.168.1.38 's password :
mesg: ttyname failed : Ioctl inaproprie pour un peripherique
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
24 janv. 2020 à 11:33
24 janv. 2020 à 11:33
#CONNEXION SSHIl ne faut pas mettre la commande entre "
$(ssh -T root@$ip <<'FIN')
$(…)" !
#CONNEXION SSH
ssh -T root@$ip <<'FIN'
echo "-------------------"
echo "le nom de la machine est :" $(hostname)
echo "la machine a " $(cat /proc/meminfo | grep processor | wc -l) "coeur(s)"
'FIN'
c199
Messages postés
26
Date d'inscription
lundi 6 janvier 2020
Statut
Membre
Dernière intervention
7 février 2020
24 janv. 2020 à 11:43
24 janv. 2020 à 11:43
je viens d'essayer merci mais jai encore quelque erreurs comme:
apres le ping de @ip
ligne 41 avertissement here document a la ligne 16 delimite par la fin du fichier (au lieu de "fin")
puis apres avoir entre le bon MDP
Welcome to ubuntu 16.04.0.2 lts (GNU /linux 4.4 ...)
mesg: ttyname failed inaproprie pour un generique
mes commande ont marhce et apres le
---------------------------------
-bash: ligne 15: FIN :commande introuvable
apres le ping de @ip
ligne 41 avertissement here document a la ligne 16 delimite par la fin du fichier (au lieu de "fin")
puis apres avoir entre le bon MDP
Welcome to ubuntu 16.04.0.2 lts (GNU /linux 4.4 ...)
- documentation https ...
mesg: ttyname failed inaproprie pour un generique
mes commande ont marhce et apres le
---------------------------------
-bash: ligne 15: FIN :commande introuvable
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
24 janv. 2020 à 11:46
24 janv. 2020 à 11:46
Merci d'afficher la sortie de ton script via cette commande :
cat -An ton-script
c199
Messages postés
26
Date d'inscription
lundi 6 janvier 2020
Statut
Membre
Dernière intervention
7 février 2020
Modifié le 27 janv. 2020 à 15:19
Modifié le 27 janv. 2020 à 15:19
merci pour ton aide
en faite on s'est rendu compte qu'on pouvait pas faire du SSH
du coup on leur envoie par mail et il va nous le renvoyer par mail
Maintenant je cherche un autre moyen d’ouvrir le script comme un programme et non comme un fichier test
t'aurai une solution
en faite on s'est rendu compte qu'on pouvait pas faire du SSH
du coup on leur envoie par mail et il va nous le renvoyer par mail
Maintenant je cherche un autre moyen d’ouvrir le script comme un programme et non comme un fichier test
t'aurai une solution
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
27 janv. 2020 à 15:27
27 janv. 2020 à 15:27
J'aurais un semblant de solution si et seulement si j'avais compris ta demande, ce qui n'est pas le cas ;-\
ouvrir le script comme un programmeQu'entends-tu par là ?