Files
powershell-scripts/WDC/WDC_SyncWebCompo.ps1
T
marco.locatelli@steamware.net 236bcf195c Riorganizzazione Progetto pt.1
2024-02-21 10:04:07 +01:00

85 lines
2.2 KiB
PowerShell

#SCRIPT PER ROBOCOPIARE CARTELLA WEBDOOR
####INIZIO DICHIARAZIONE VARIABILI####
# num gg per cui tenere i log
$Days = "30"
$CutoffDate = (Get-Date).AddDays(-$Days)
#rilevo time per log inizio analisi
$startTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss")
# avvio stopwatch
$mainStopWatch = [system.diagnostics.stopwatch]::StartNew()
#abilitazione log: 0=disattivo, 1=abilitato
$logEnable = 0
#cartella file di log
$WdcLogFolder = "c:\Steamware\Logs\WDC\"
#nome file di log
$dayName = "WDC_" + (Get-Date).toString("yyyy-MM-dd") + ".log"
$logFile = Join-Path $WdcLogFolder $dayName
#folder source per robocopy
$sourceFolder = "U:\NextCloud\ABH\Compo"
#folder destination per robocopy
$destFolder = "U:\WebDoorSync\NewComp\Compo"
# ex IIS04
#$sourceFolder = "\\stor01\TEAM DRIVES\30_Clienti\ABH\DataImport\Compo"
#$destFolder = "\\IIS04\WebDoorSync\NewComp\Compo"
####FINE DICHIARAZIONE VARIABILI####
#dichiaro funzione per scrittura output
Function WriteLogOutput {
Param ([string]$logString)
#scrivo su file la stringa
Add-content $logFile -value "$logString"
#scrivo su terminale la stringa se $logEnable=1
if ($logEnable -eq 1) {
Write-Output($logString)
}
}
#creazione folder di Log se non già esistente
if (Test-Path $WdcLogFolder) {
}
else {
New-Item $WdcLogFolder -ItemType Directory
}
#effettuo robocopy
try {
WriteLogOutput "------WDC SYNC------"
if ($logEnable -eq 1) {
robocopy $sourceFolder $destFolder /mir /log+:$logFile
}
else {
WriteLogOutput ""
WriteLogOutput "Started: $startTime"
WriteLogOutput "Source: $sourceFolder"
WriteLogOutput "Destination: $destFolder"
robocopy $sourceFolder $destFolder /mir
}
WriteLogOutput "Robocopy OK"
}
catch {
WriteLogOutput "An error occurred"
}
# elimino file log troppo vecchi
Get-ChildItem -Path $WdcLogFolder -Recurse -File | Where-Object { $_.LastWriteTime -lt $CutoffDate } | Remove-Item -Force
WriteLogOutput "Log Cleanup complete!"
# fermo stopwatch e calcolo durata script
$mainStopWatch.Stop()
$durataScript = $mainStopWatch.Elapsed.TotalSeconds
#scrivo le statistiche
WriteLogOutput "Duration: $durataScript seconds"
WriteLogOutput ""