Das folgende Skript lädt alle Dateien von einem FTP Server herunter und fügt sie zu einem ZIP-Archiv zusammen. Für den FTP-Download wird ncFTP verwendet, da die in Windows integrierte FTP.exe nicht für den Download ganzer Verzeichnis-Hierarchien geeignet ist. Das Komprimieren der Dateien übernimmt 7-Zip.
Damit das Skript funktioniert müssen die Daten im Configuration Part des Skriptes angepasst werden. Um das Skript auszuführen wird die Windows PowerShell benötigt. Information zum Ausführen von PowerShell Skripten gibt es hier. Am Ende des Artikels gibt es einen Downloadlink für das Skript mit allen Binaries.
# BackUP files from FTP Server as ZIP # Author: Marcus Hottenrott # GNU GPL # #--- Configuration ------------------------------------------ $backupDestination = "D:\FTP_Backup\Backup" $pathToThisScript = "D:\FTP_Backup" $ftpHost = "localhost" $ftpUser = "USERNAME" $ftpPassword = "PASSWORD" $ftpFolderToBackUp = "/" $ftpPort = "21" #--- Implementation ------------------------------------------ # Path to binaries Set-Location $pathToThisScript $sevenZipPath = Get-Item "bin\7z.exe" | Resolve-Path -Relative $ncFtpGetPath = Get-Item "bin\ncftpget.exe" | Resolve-Path -Relative # Backup filename $backUpZipFileName = Get-Date -Format "yyyy-MM-dd-HH_mm_ss" $BackupZIP = $backupDestination + "\" + $backUpZipFileName # Create temp folder for downloaded FTP files $tempFolderForFtpFiles = $env:temp + "\FTP_Backup" New-Item -Path $tempFolderForFtpFiles -ItemType directory # Download files from FTP Server Start-Process -FilePath $ncFtpGetPath -ArgumentList "-T -R -v -u $ftpUser -p $ftpPassword -P $ftpPort $ftpHost $tempFolderForFtpFiles $ftpFolderToBackUp" -wait # Zip downloaded files Start-Process -FilePath $sevenZipPath -ArgumentList "a -Tzip $BackupZIP $tempFolderForFtpFiles" -wait # Delete temp folder Remove-Item -Recurse -Force -Path $tempFolderForFtpFiles
Download Skript
[wpdm_file id=4]