Question Script Liunx

Plus d'informations
il y a 5 ans 6 mois #27670 par Jules Piges
Script Liunx a été créé par Jules Piges
Bonjour,

je suis un petit nouveau qui à besoin d'un coupe de main avec un petit script powershell-linux,

je vous explique je dois remonter les informations suivantes de mes VM tournant sous linux : Proc/Mémoires/disque dur et je bloc, voilà ce que j'ai pour le moment :

[code:1]
$username = \"scripts-**\"
$password = get-content C:\Users\administrateur.**\Powershell.txt | convertto-securestring
$Cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username,$password
New-SSHSession -ComputerName $Serveurs -Credential $cred
foreach ($Serveur in $Serveurs) {
$elements = Invoke-SSHCommand -Index 0 -Command \"df -h\"| Format-list | Out-String

et voila le résultat :

Host : s-**
Output : {Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur, udev 2,0G 0 2,0G 0% /dev, tmpfs 396M 46M 351M 12% /run,
/dev/sda1 28G 2,3G 24G 9% /...}
ExitStatus : 0
[/code:1]

Mon problème c'est que je ne récupère pas tout à cause des /... et je bloque dessus,

Quelqu'un à une idée ??

Merci d'avance<br><br>Message édité par: JulesP, à: 17/10/18 07:38

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 5 ans 6 mois #27672 par Gabriel
Réponse de Gabriel sur le sujet Re:Script Liunx
Bonjour Jules

il y a déjà un pb de visulaisation de ton code et du resultat

tu devrais editer ton message et utiliser \&quot;[ code ]mettre le code ici[ /code ]

cela permettra de lire plus facilement ton texte

comme ci-dessous:
[code:1]
c:\dir
[/code:1]

pour ton pb, je ne penses pas que ce soit le \&quot;/\&quot; ton pb.

en effet il y a \&quot;...\&quot;, et ça, ça veut dire que powershell tronque la reponse pour plus de lisibilité.

je vois pas a quoi sert le format-list et le out-string dans ton code a ce moment là de la boucle

[code:1]| Format-list | Out-String[/code:1]

tu devrais proceder a un test sur une seule machine et voir ce que GM (get-member) retourne on aura l'ensemble des proprietes de l'objet $elements

[code:1]
$elements = Invoke-SSHCommand -Index 0 -Command \&quot;df -h\&quot;
$elements | gm
[/code:1]

une des proprietes devrait être \&quot;Output\&quot;

donc peut etre le code suivant devrait t'aider , je n'ai pas de linux sous la main, je ne peux pas tester

[code:1]
$elements = Invoke-SSHCommand -Index 0 -Command \&quot;df -h\&quot;
$outputLinux = $elements | select -expandproperty Output
$outputLinux
[/code:1]

Bonne chance
Tonic8

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 5 ans 6 mois #27689 par Jules Piges
Réponse de Jules Piges sur le sujet Re:Script Liunx
Bonjour,

Tout d'abord merci pour tout cela m'aide beaucoup, alors voici les résultat pour une machine :

pour la commande
[code:1]
$elements = Invoke-SSHCommand -Index 0 -Command \&quot;df -h\&quot;
$elements | gm
[/code:1]

Le résultat :
[code:1]
TypeName : Renci.SshNet.SshCommand
Name MemberType Definition
----

Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Duration NoteProperty timespan Duration=00:00:00.0593341
Error NoteProperty string Error=
ExitStatus NoteProperty int ExitStatus=0
Host NoteProperty string Host=s-web10-pp
Output NoteProperty string[] Output=System.String[]
[/code:1]

et pour la commande
[code:1]
$elements = Invoke-SSHCommand -Index 0 -Command \&quot;df -h\&quot;

$outputLinux = $elements | select -expandproperty Output

$outputLinux
[/code:1]

le résultat :
[code:1]
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
udev 2,0G 0 2,0G 0% /dev
tmpfs 396M 46M 351M 12% /run
/dev/sda1 28G 2,3G 24G 9% /
tmpfs 2,0G 0 2,0G 0% /dev/shm
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 2,0G 0 2,0G 0% /sys/fs/cgroup
tmpfs 396M 0 396M 0% /run/user/0
tmpfs 396M 0 396M 0% /run/user/1000
[/code:1]

c'est parfait, sauf que maintenant il faut que j'arrive a en faire une boucle pour tout les serveurs et que le résultat remonte dans un csv
Donc si tu avais encore une ou deux idée je suis preneur

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 5 ans 5 mois #27692 par Gabriel
Réponse de Gabriel sur le sujet Re:Script Liunx
Salut

ben le plus gros est fait et tu l'as meme fait.

ta boucle au debut + le nouveau code.

par contre ce que te renvoi linux c'est une string ($outputLinux est finalement une simple chaine de caractere).

Donc tu peux pousser dans un fichier texte qui porte le nom de ton serveur.

si tu veux recuperer les valeurs, là va falloir faire du parsing et c'est pas la même limonade. :)

Tonic8

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 5 ans 5 mois #27716 par Jules Piges
Réponse de Jules Piges sur le sujet Re:Script Liunx
Merci Tonic,

En effet c'est les valeurs qu'il faut que je récupère,
Donc il me faudrait un coup de pouce,

Merci d'avance

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 5 ans 5 mois #27741 par Jules Piges
Réponse de Jules Piges sur le sujet Re:Script Liunx
Bon j' avance bien maintenant j'ai encore besoin d'aide pour terminer mon script.
Je vous explique, maintenant que j'ai mon fichier txt tout beau j'aimerai additionner toute les colonnes pour avoir qu'une seul ligne. je vous montre le script et le résultat :
[code:1]
Write-Host \&quot;serveur **\&quot;
$Serveurs = \&quot;S-WEB10-PP,S-WEBDB10-PP\&quot;

$Serveurs = $Serveurs.ToUpper()
$Serveurs = $Serveurs.Split(\&quot;,\&quot;«»)


$username = \&quot;scripts-hisi\&quot;
$password = get-content C:\Users\j**\Powershell.txt | convertto-securestring
$Cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username,$password



Foreach ($serveur in $Serveurs) {
New-SshSession -computername $Serveur -Credential $cred
$elements = Invoke-SSHCommand -Index 0 -Command \&quot;df -m\&quot;
$outputLinux = $elements | select -expandproperty Output
$outputLinux
Add-Content $ficwork01a $outputLinux
$ficwork01c = get-content $ficwork01a | where {$_ -notlike \&quot;*S-**:/*\&quot;}
set-content $ficwork01a $ficwork01c
}
Remove-SshSession -Index 0 -Verbose
[/code:1]

Maintenant j'ai mes résultats dans le $ficwork01a qui est un fichier txt dont voici le contenu :

[code:1]
Sys. de fichiers blocs de 1M Utilisé Disponible Uti% Monté sur
udev 1968 0 1968 0% /dev
tmpfs 396 46 351 12% /run
/dev/sda1 28094 2401 24244 10% /
tmpfs 1978 0 1978 0% /dev/shm
tmpfs 5 0 5 0% /run/lock
tmpfs 1978 0 1978 0% /sys/fs/cgroup
tmpfs 396 0 396 0% /run/user/0
tmpfs 396 0 396 0% /run/user/1000
Sys. de fichiers blocs de 1M Utilisé Disponible Uti% Monté sur
udev 1968 0 1968 0% /dev
tmpfs 396 36 361 9% /run
/dev/sda1 28094 2786 23858 11% /
tmpfs 1978 0 1978 0% /dev/shm
tmpfs 5 0 5 0% /run/lock
tmpfs 1978 0 1978 0% /sys/fs/cgroup
tmpfs 396 0 396 0% /run/user/107
tmpfs 396 0 396 0% /run/user/0
tmpfs 396 0 396 0% /run/user/1000

[/code:1]

Donc la demande est elle que j'ai faite plus haut, comment j'additionne les colones pour avoir qu'une seule ligne par serveur???

Merci d'avance,

Message édité par: JulesP, à: 9/11/18 10:23<br><br>Message édité par: JulesP, à: 9/11/18 10:24

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.076 secondes
Propulsé par Kunena