Flash info

"La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information. "

Albert Einstein (1879-1955)

 
Accueil arrow Forum

Bienvenue sur le forum PowerShell-Scripting.com

 
JulesP
Utilisateur

PowerShelleur Débutant
Messages: 6
graphgraph
Karma: 0  
Script Liunx - 12/10/18 10:08 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:

  $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     : {Sysde fichiers Taille Utilisé Dispo UtiMonté surudev               2,0G       0  2,0G   0% /devtmpfs              396M     46M  351M  12% /run,               /dev/sda1           28G    2,3G   24G   9% /...} ExitStatus 0



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

Message édité par: JulesP, à: 17/10/18 07:38
  | | L'administrateur a désactivé l'accés public en écriture.
tonic8
Utilisateur

PowerShelleur Platinum
Messages: 226
graphgraph
Karma: 12  
Re:Script Liunx - 12/10/18 20:49 Bonjour Jules

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

tu devrais editer ton message et utiliser "[ code ]mettre le code ici[ /code ]

cela permettra de lire plus facilement ton texte

comme ci-dessous:
Code:

  c:\dir



pour ton pb, je ne penses pas que ce soit le "/" ton pb.

en effet il y a "...", 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:

 Format-list | Out-String



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:

  $elements Invoke-SSHCommand -Index 0 -Command "df -h" $elements gm



une des proprietes devrait être "Output"

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

Code:

  $elements Invoke-SSHCommand -Index 0 -Command "df -h" $outputLinux $elements select -expandproperty Output $outputLinux



Bonne chance
Tonic8
  | | L'administrateur a désactivé l'accés public en écriture.
JulesP
Utilisateur

PowerShelleur Débutant
Messages: 6
graphgraph
Karma: 0  
Re:Script Liunx - 17/10/18 09:32 Bonjour,

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

pour la commande
Code:

  $elements Invoke-SSHCommand -Index 0 -Command "df -h" $elements gm



Le résultat :
Code:

  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[]   



et pour la commande
Code:

  $elements Invoke-SSHCommand -Index 0 -Command "df -h" $outputLinux $elements select -expandproperty Output $outputLinux



le résultat :
Code:

  Sysde fichiers Taille Utilisé Dispo UtiMonté 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



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
  | | L'administrateur a désactivé l'accés public en écriture.
tonic8
Utilisateur

PowerShelleur Platinum
Messages: 226
graphgraph
Karma: 12  
Re:Script Liunx - 21/10/18 22:04 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
  | | L'administrateur a désactivé l'accés public en écriture.
JulesP
Utilisateur

PowerShelleur Débutant
Messages: 6
graphgraph
Karma: 0  
Re:Script Liunx - 29/10/18 13:00 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
  | | L'administrateur a désactivé l'accés public en écriture.
JulesP
Utilisateur

PowerShelleur Débutant
Messages: 6
graphgraph
Karma: 0  
Re:Script Liunx - 9/11/18 10:22 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:

  Write-Host "serveur **" $Serveurs "S-WEB10-PP,S-WEBDB10-PP" $Serveurs $Serveurs.ToUpper()   $Serveurs $Serveurs.Split(",") $username "scripts-hisi" $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 "df -m"   $outputLinux $elements select -expandproperty Output $outputLinux Add-Content $ficwork01a $outputLinux $ficwork01c get-content $ficwork01a where {$_ -notlike "*S-**:/*"} set-content $ficwork01a  $ficwork01c }   Remove-SshSession -Index 0 -Verbose



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

Code:

  Sysde fichiers blocs de 1M Utilisé Disponible UtiMonté 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 Sysde fichiers              blocs de 1M Utilisé Disponible UtiMonté 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



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

Message édité par: JulesP, à: 9/11/18 10:24
  | | L'administrateur a désactivé l'accés public en écriture.
JulesP
Utilisateur

PowerShelleur Débutant
Messages: 6
graphgraph
Karma: 0  
Re:Script Liunx - 3/12/18 09:32 Alors personne pour me donner un petit coup de main???
  | | L'administrateur a désactivé l'accés public en écriture.
Sinjk
Utilisateur

PowerShelleur Débutant
Messages: 18
graphgraph
Karma: 1  
Re:Script Liunx - 3/12/18 10:02 Salut, as-tu essayé le paramètre "-Append" pour afficher les infos sur la même ligne à chaque serveur?

Exemple :
Code:

 Get-WmiObject Win32_Volume Select PSComputerName,SerialNumber out-file -FilePath "chemin\serverInfo.txt" -Append 

  | | L'administrateur a désactivé l'accés public en écriture.
JulesP
Utilisateur

PowerShelleur Débutant
Messages: 6
graphgraph
Karma: 0  
Re:Script Liunx - 5/12/18 10:37 C'est des commande Windows ça pas des commandes Linux
  | | L'administrateur a désactivé l'accés public en écriture.
© 2018 PowerShell-Scripting.com