Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2301 connectés 

  FORUM HardWare.fr
  Systèmes & Réseaux Pro
  Infrastructures serveurs

  Copie de fichiers sur une liste de serveurs sur chemins non uniformes

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Copie de fichiers sur une liste de serveurs sur chemins non uniformes

n°124025
Theartemis
Posté le 16-09-2014 à 10:31:30  profilanswer
 

Bonjour,
 
Dans le cadre d'une migration de notre système de supervision je dois mettre à jour un fichier sur une liste de serveurs et logger chaque copie.
La principale difficulté réside dans le fait que le fichier à remplacer peut se trouver à 3 endroits différents selon le serveur.
 
C:\NSCLient\scripts
D:\NSCLient\scripts
F:\NSCLient\scripts
 
Habituellement, pour une copie simple de fichier vers un répertoire uniforme je ferai un
 

Code :
  1. FOR /f %%a IN (liste.txt) DO XCOPY /Y "c:\nagios-update\nagios.pl" \%%a\C$\NSCLient\scripts >Copy.log 2>&1


 
Dans ce cas-ci je devrais donc utiliser IF EXIST, est-ce que quelque chose du genre fonctionnerait ?
 

Code :
  1. FOR /f %%a IN (liste.txt) DO
  2. IF EXIST "\%%a\F$\NSCLient\scripts" DO XCOPY /Y "c:\nagios-update\purgeoldfiles.cmd" \%%a\F$\NSCLient\scripts >Copy.log 2>&1
  3. ELSE
  4. IF EXIST "\%%a\C$\NSCLient\scripts\" DO XCOPY /Y "c:\nagios-update\purgeoldfiles.cmd" \%%a\C$\NSCLient\scripts >Copy.log 2>&1
  5. ELSE
  6. IF EXIST "\%%a\D$\NSCLient\scripts\" DO XCOPY /Y "c:\nagios-update\purgeoldfiles.cmd" \%%a\D$\NSCLient\scripts >Copy.log 2>&1
  7. ELSE
  8. ECHO "Prout"


 


---------------
Beer Snobs map / Topac fumage & salaisons
mood
Publicité
Posté le 16-09-2014 à 10:31:30  profilanswer
 

n°124040
Dysnome
Posté le 16-09-2014 à 13:30:35  profilanswer
 

Salut,
 
Pourquoi ne pas utiliser Powershell pour ce genre de choses ? C'est assez simple. Voici un exemple de code qui pourrait correspondre à tes attentes :

Citation :

$servers = @("localhost" ) #A modifier par un Get-Content pour récupérer la liste des serveurs depuis un fichier
$letters = @("C", "D", "F" ) #Les lettres des drivers à checker
#Eventuellement ajouter le reste des variables ici
 
foreach($server in $servers){ #On parcourt la liste des serveurs
    foreach($letter in $letters){ #On test chaque lettres de drive
        $Path = "\\$server\$letter$\NSClient\scripts"
        if(Test-Path $path){
            Write-Host "Doing task with path : $path"
            Copy-Item "$path\*" "INSERT_DESTINATION_HERE"
            break #Si on trouve une lettre, alors on s'arrête là et on passe au serveur suivant
        }else{
            Write-Host "Path not found : $path"
        }
    }
}

n°124081
Theartemis
Posté le 17-09-2014 à 14:08:58  profilanswer
 

Au final j'ai effectivement utilisé Powershell
 

Code :
  1. $LogFile = "C:\Nagios\NagiosUpd.log"
  2. Get-Content "FR.txt" | %{
  3. $Server = $_
  4. $path = "\\$Server\"
  5. if (Test-Path (Join-Path $path "C$\NSClient\Scripts" )) { $path = Join-Path $path "C$\NSClient\Scripts" }
  6. elseif (Test-Path (Join-Path $path "D$\NSClient\Scripts" )) { $path = Join-Path $path "D$\NSClient\Scripts" }
  7.  elseif (Test-Path (Join-Path $path "F$\NSClient\Scripts" )) { $path = Join-Path $path "F$\NSClient\Scripts" }
  8. try { Copy-Item -Path "C:\Nagios\getNagiosSrvAddr.pl" -Destination $path -Force -Confirm:$false -ErrorAction 'Stop' }
  9. catch { "[Error][$Server] Failed to deploy file, Error: $($_.Exception.Message)" >> $LogFile }
  10. }


---------------
Beer Snobs map / Topac fumage & salaisons
n°124086
Je@nb
Modérateur
Kindly give dime
Posté le 17-09-2014 à 16:25:09  profilanswer
 

Prochaine étape, apprendre à utiliser les boucles :o


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Systèmes & Réseaux Pro
  Infrastructures serveurs

  Copie de fichiers sur une liste de serveurs sur chemins non uniformes

 

Sujets relatifs
Salle serveurs - Système Argonite et HDDServeur de fichiers Windows 2003
Monitoring bande passante d'un serveur de fichiersCorbeille des utilisateurs des serveurs tse win2008r2
Evolution serveurs dédiés => colocationNetasq - liste des process
Serveur de fichiers : ajouter un lien vers un autre serveurgestion des fichiers
google apps gmail, cohabitation serveurs mails zone dns 
Plus de sujets relatifs à : Copie de fichiers sur une liste de serveurs sur chemins non uniformes


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR