1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
# Importation du module WinSCPnet.dll pour l'utilisation des commandes de WinSCP
Import-Module ".\WinSCPnet.dll" -Verbose
Add-Type -path ".\WinSCPnet.dll"
Add-Type -AssemblyName System.Windows.Forms
# Déclaration des variables
$path = "C:\Users\administrateur\Documents\sauvegarde_serveur_web_$date"
$shortPath = "C:\Users\administrateur\Documents"
$date = get-date -Format dd_MM_yy
# Début de la condition de vérification de présence de dossier
# Vérifie si le dossier n'existe pas
if ($path -eq $false)
{
# Si il n'éxiste pas il le crée
New-Item $path -ItemType Directory
}
# Fin de la condition de vérification de présence de dossier
# Début de la condition de vérification de la date de création
if ( Get-ChildItem $shortPath | Where name -like "sauvegarde_serveur_web_$date" | where LastWriteTime -lt (Get-Date).AddDays(-1) )
{
# Si le dossier a été écrit pour la dernière fois il y a plus de 30 jours alors il sera supprimé
Remove-Item $path -Force -Recurse
}
# Fin de la condition de vérification de la date de création
# Déclaration de la variable d'ouverture de session
$sessionOptions = New-Object WinSCP.SessionOptions -Property @{
Protocol = [WinSCP.Protocol]::Sftp
HostName =
UserName =
Password =
SshHostKeyFingerprint =
}
$session = New-Object WinSCP.Session
$session.ExecutablePath = ".\WinSCP.exe"
try
{
# Ouverture de session
$session.Open($sessionOptions)
# Récupération des fichiers
$session.GetFiles("/lamp0/web/vhosts", $path).Check()
}
finally
{
# Fermeture de la session
[System.Windows.Forms.MessageBox]::Show("La sauvegarde des sites web est terminée", "Sauvegarde" , 0, 64)
$session.Dispose()
} |