Этот код загружает файлы с удаленного сервера Unix в Windows Server с помощью сборки WinSCP .NET. Но вместо того, чтобы копировать все файлы журналов из папки журналов на исходном сервере Unix на целевой сервер Windows, я просто хочу, чтобы он копировал журналы за последние 30 дней. Причина в том, что я не хочу, чтобы он заполнял диск C на конечном сервере Windows.
param (
$localPath = "d:\Logs\OnlineLogs",
$remotePath = "/application/oracle",
$fileName = "int_access*.*"
)
try
{
# Load WinSCP .NET assembly
Add-Type -Path "C:\Program Files (x86)\WinSCP\WinSCPnet.dll"
# Set up session options
$sessionOptions = New-Object WinSCP.SessionOptions -Property @{
Protocol = [WinSCP.Protocol]::Sftp
HostName = ""
UserName = ""
Password = ""
SshHostKeyFingerprint = ""
}
$session = New-Object WinSCP.Session
try
{
$session.Open($sessionOptions)
$session.GetFiles(($remotePath + $fileName), ($localPath + $fileName)).Check()
}
finally
{
#Disconnect, clean up
$session.Dispose()
}
exit 0
}
catch
{
Write-Host "Error: $($_.Exception.Message)"
exit 1
}