Demande d'aide script ftp



  • J’ai bien une solution mais je pense pas que basculer sur du GNU/Linux soit envisageable :diable:



  • text alternatif



  • Mon script est celui que j’ai mis plus haut . Je le redonne :

    $user = "USER"
    $password = "PASS FTP"
    $localdir = "D:\jess\notices"
    $ftpdir = "ftp://ftp.cluster026.hosting.ovh.net/www/Test/"
    $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
    

    Et non passer sous GNU/Linux n’est pas envisageable. Le client veut que cela fonctionne sous windows server…

    En vous remerciant



  • j’ai trouver ceci :

    Compare-Object $(dir $srcDir | where{$_.PSIsContainer}) $(dir $targetDir | where{$_.PSIsContainer}) | where {$_.SideIndicator -eq "<="} | select -First 1 | % { $currentFolder=$_.InputObject; Invoke-Expression -Command $robocopyCommand }
    

    le problème c’est que je ne sais pas comment l’intégrer à mon script…

    Quelqu’un à une idée ?

    en vous remerciant



  • j’ai trouvé ceci or je n’arrive pas à les intégrer à mon script j’ai que des erreurs…

    if ($firstFile.LastWriteTime -ne $secondFile.LastWriteTime) {
    # Date de fichier différente
    } else {
    # Date identique
    }
    
    ou 
    
    # Récupération du fichier
    $file = Get-ChildItem 'C:\file.log'
    # Date de creation
    $file.CreationTime
    # Date de dernière modification
    $file.LastWriteTime
    


  • Ok, n’hésite pas à mettre les balises codes via ce bouton balise code , ça permet un meilleur visuel 😏

    De mon coté j’ai trouvé ce script qui synchronise 2 dossiers sur 2 serveurs :

    #"D:\Change" is the folder to watch 
    #"D:\ftp\" is the destination folder which can be shared folder of another server 
    Function checkFilestatus 
    { 
         Param($k)     
            Try 
            {     
            [IO.File]::OpenRead($k).Close() 
            Copy-Item -Path "$k" -Destination "D:\ftp\" -Force 
            } 
            catch 
            { 
            Start-Sleep -Seconds 120 
            Copy-Item -Path "$k" -Destination "D:\ftp\" -Force 
            } 
    } 
    $filewatcher = New-Object System.IO.FileSystemWatcher 
    $filewatcher.Path = "D:\Change" 
    $filewatcher.IncludeSubdirectories = $true 
    $filewatcher.EnableRaisingEvents = $true 
    Register-ObjectEvent $filewatcher "created" -Action { checkFilestatus($($eventargs.fullpath))} 
    Register-ObjectEvent $filewatcher "Changed" -Action { checkFilestatus($($eventargs.fullpath))}
    

    Ayant un portable windows à basculer sous linux ce week end, je vais essayer de prendre le temps d’écrire un script.

    Au cas ou voici une belle bible de scripts powershell :
    https://gallery.technet.microsoft.com/scriptcenter/site/search?f[0].Type=Tag&f[0].Value=Powershell&f[0].Text=Powershell



  • @The-Worm-s

    je te remercie beaucoup

    Je continue mes recherches de mon coté je vous tiens au courant ^^



  • Bon désolé, :rougi:
    j’ai pas encore pris le temps vu que le vieux sony que je devais réinstallé, je l’ai passé sous PepperMint :ange:



  • @The-Worm-s
    t’inquiete y a pas de soucis.

    je cherche toujours de mon côté.

    Merci



  • @Melissia toujours d’actualité ?


Se connecter pour répondre
 

Sauf mention contraire, le site est placé sous double licence Creative Commons BY-SA et GNU Free Documentation License propulsé par NodeBB