复制最近 1 小时时间戳的日志文件,并在 PowerShell 中最近 1 小时没有日志文件时通知
Copy log files for last 1 hour time stamp and notify if no log files in last 1 hour in PowerShell
我正在尝试使用时间戳将日志文件从源复制到目标。如果在下面的最后 1 小时内生成了任何日志,脚本会将文件复制到目标路径中带有 (source folder_current Date) 的 distention。该脚本运行良好,但我需要知道过去 1 小时内是否没有创建日志。如果是这样,脚本应该创建一个文件,说明过去 1 小时没有日志,或者它不应该在目标路径中创建文件夹。
$ScriptStart = Get-Date
$PreviousTime = $ScriptStart.AddHours(-1)
$source = 'c:\SOURCE\logfiles'
$dest = 'D:\dest\log'
gci $source -Recurse -File |
? {$_.LastWriteTime -lt $ScriptStart -and $_.LastWriteTime -gt $PreviousTime} |
Copy-Item -Destination $dest\logfoldername
将过滤器与操作分开:
$filesToCopy = Get-ChildItem $source -Recurse -File |
Where-Object {
$_.LastWriteTime -lt $ScriptStart -and
$_.LastWriteTime -gt $PreviousTime
}
if ($filesToCopy) {
$filesToCopy | Copy-Item -Destination $dest\logfoldername
} else {
'no files to copy' | Set-Content 'C:\path\to\nofile.txt'
}
我正在尝试使用时间戳将日志文件从源复制到目标。如果在下面的最后 1 小时内生成了任何日志,脚本会将文件复制到目标路径中带有 (source folder_current Date) 的 distention。该脚本运行良好,但我需要知道过去 1 小时内是否没有创建日志。如果是这样,脚本应该创建一个文件,说明过去 1 小时没有日志,或者它不应该在目标路径中创建文件夹。
$ScriptStart = Get-Date
$PreviousTime = $ScriptStart.AddHours(-1)
$source = 'c:\SOURCE\logfiles'
$dest = 'D:\dest\log'
gci $source -Recurse -File |
? {$_.LastWriteTime -lt $ScriptStart -and $_.LastWriteTime -gt $PreviousTime} |
Copy-Item -Destination $dest\logfoldername
将过滤器与操作分开:
$filesToCopy = Get-ChildItem $source -Recurse -File |
Where-Object {
$_.LastWriteTime -lt $ScriptStart -and
$_.LastWriteTime -gt $PreviousTime
}
if ($filesToCopy) {
$filesToCopy | Copy-Item -Destination $dest\logfoldername
} else {
'no files to copy' | Set-Content 'C:\path\to\nofile.txt'
}