$PSCP = "C:\tools\putty\pscp.exe -p" # -p は timestamp を保持
$7Z = "C:\Program Files\7-Zip\7z.exe"
@(
@{
"host" = "192.168.0.1"
"user" = "user"
"pass" = "password"
"src" = "/var/log/httpd/*.1"
"dst" = "d:\backup\web1"
},
@{
"host" = "192.168.0.2"
"user" = "user"
"pass" = "password"
"src" = "/var/log/httpd/*.1"
"dst" = "d:\backup\web2"
}
) | foreach {
# 出力先
$dst = Join-Path $_.dst (Get-Date).ToString('yyyyMMdd')
mkdir $dst
# C:\tools\putty\pscp.exe -p -pw password user@192.168.0.1:/var/log/httpd/*.1 d:\web1\20100728
$cmd = "$PSCP -pw {0} {1}@{2}:{3} {4}" -f $_.pass, $_.user, $_.host, $_.src, $dst
Invoke-Expression $cmd
cd $dst
ls | foreach {
$orig = $_.FullName
$zip = $_.FullName + '.zip'
& $7Z a -tzip $zip $orig
rm $orig
}
}