none
Script de sauvegarde synchronisé de données vers FTP RRS feed

  • Question

  • Bonjour,

    j'ai fait un script de sauvegarde de données d'un ordinateur vers un serveur FTP.

    Cela marche très bien, par contre je n'arrive pas à trouver une solution pour que la sauvegarde soit synchroniqé.

    Il faudrait que quand j'ai copié mes données, si je dois rajouter un fichier, dossier, ou sous dossiers ou modifié un fichier existant,  quelques jours plus tard, que le script ne copie que ce qui à été rajouté ou modifier et non tout recopié.

    Or mon script recopie tout.

    Que dois je modifier, ou rajouter ? et à quel endroit ?

    En vous remerciant 

    Cordialement 

    SCRIPT : 

    $user = "USER FTP
    $password = "PASSWORD FTP"
    $localdir = "DOSSIER SOURCE"
    $ftpdir = "EMPLACEMENT DESTINATAIRE"
     
    $client = New-Object System.Net.WebClient 
    $client.Credentials = New-Object System.Net.NetworkCredential($user,$password) 
     
    $parentfolder = $localdir.split("\")[-1]
    Write-Host "Création de $parentfolder"
    $makedir = [System.Net.WebRequest]::Create($ftpdir+$parentfolder);
    $makedir.Credentials = New-Object System.Net.NetworkCredential($user,$password) 
    $makedir.Method = [System.Net.WebRequestMethods+FTP]::MakeDirectory;
    $makedir.GetResponse();

     
    foreach($item in Get-ChildItem -recurse $localdir){ 
     
        $filename = [system.io.path]::GetFullPath($item.FullName).SubString([system.io.path]::GetFullPath($localdir).Length + 1)
     
        if ($item.Attributes -eq "Directory"){
     
            try{
                Write-Host "Création de $item.Name"
     
                $makedir = [System.Net.WebRequest]::Create($ftpdir+"/"+$parentfolder+"/"+$filename);
                $makedir.Credentials = New-Object System.Net.NetworkCredential($user,$password) 
                $makedir.Method = [System.Net.WebRequestMethods+FTP]::MakeDirectory;
                $makedir.GetResponse();
     
                }
                catch [Net.WebException] {
                Write-Host $item.Name probably exists ...
                }
     
                continue;
            }
     
            Write-Host "Transfert de $item..."
            $file = New-Object System.Uri($ftpdir+"/"+$parentfolder+"/"+$filename) 
            $client.UploadFile($file, $item.FullName)
        }
    pause


    lundi 15 octobre 2018 12:51