UNSOLVED Demande d'aide script ftp
-
-
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 , ç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 -
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: -
-
@Melissia toujours d’actualité ?
-
The Worm’s : oui toujours
Sauf mention contraire, le site est placé sous double licence Creative Commons BY-SA et GNU Free Documentation License propulsé par NodeBB