none
Backup Arborescence FTP RRS feed

  • Question

  • Bonjour,

    je souhaite faire un backup de l'arborescence d'un site web en passant par le FTP situé sur un serveur OVH.

    Le script Powershell ci-dessous à fonctionné dans ma maquette (FTP sur un serveur en local, stockage du backup sur mon poste)

    Import-Module PSFTP
    $date = (get-date).ToString("yy-MM-dd")
    $username = [ID]
    $pass = ConvertTo-SecureString [MDP] -AsPlainText -Force
    $cred = New-Object System.Management.Automation.PSCredential ($username, $pass)
    $backupFilePath = [NETWORKSHARE]
    $backupFilePathzip = [NETWORKSHARE] + ".zip"
    
    
    if (-not(test-path "$env:C:\Program Files\7-zip\7z.exe")) {throw "$env:Program File (x86)\7-zip\7zip.exe needed"}
    Set-Alias 7zip "$env:ProgramFiles\7-zip\7z.exe"
    
    
    Set-FTPConnection -Credentials $cred -Server [SERVER FTP] -Session Backup_echange_svr -UsePassive
    
    Get-FTPChildItem -Session Backup_echange_svr -Recurse -Path '/www/' | Get-FTPItem -LocalPath $backupFilePath -RecreateFolders -Verbose -Session Backup_echange_svr
    
    
    7zip a -t7z $backupFilePathzip $backupFilePath
    
    Remove-Item $backupFilePath -Recurse

    Quand je le lance, j'ai l'erreur suivante :

    Get-FTPChildItem : Échec du script en raison d’un dépassement de la profondeur des appels.
    Au caractère Ligne:16 : 1
    + Get-FTPChildItem -Session Backup_echange_svr -Recurse -Path /www/ ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
        + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Get-FTPChildItem

    C'est bizarre car durant ma phase de test j’avais créé une arbo à plusieurs niveaux et je n'ai jamais eu cette erreur.

    J'ai essayé de mettre le -Path au plus bas mais j'ai quand même la même erreur.

    Avez vous déjà eu ce genre de soucis ? Pour faire des Backups de FTP passer vous par ce genre de script ?

    Izhocell


    • Modifié Izho_cell mardi 13 septembre 2016 12:51
    mardi 13 septembre 2016 12:49

Toutes les réponses

  • Bonjour,

     Je pense que le problème viendrait de ton –path « /www/ », à quoi correspond ce répertoire ?

    On dirait que powershell considère ceci comme une boucle infinie, d’où ce massage d’erreur. 


    Car le dépassement de la profondeur des appels  en powershell est une sécurité qui permet de ne pas faire de boucle à l'infini.

    Les récurrences sont donc limitées à 1000. Ton code a du dépassé les 1000 !!!


    L’information n’a de valeur que si elle est partagée!! AK |Mon Blog|


    mardi 13 septembre 2016 19:00
  • Bonjour,

    /www/correspond a la première branche de mon FTP.

    Je pense que se qui se passe c'est qu'en dessous de /www il y a /www/. et /www/.. , il doit boucler sur ces "dossiers". Je ne sais pas comment je peux faire un exclude pour ne prendre que ceux utiles.

    Une idées ?

    mercredi 14 septembre 2016 06:08