Windows 根据日期检测丢失的文件
我需要手动监视基于windows的随机备份程序的故障,唯一的方法是检查它生成的每日备份文件 批处理文件对我来说是最容易实现的。它需要扫描某个目录中的特定文件类型,如果昨天创建/修改的文件不存在,则执行XWindows 根据日期检测丢失的文件,windows,date,batch-file,server,Windows,Date,Batch File,Server,我需要手动监视基于windows的随机备份程序的故障,唯一的方法是检查它生成的每日备份文件 批处理文件对我来说是最容易实现的。它需要扫描某个目录中的特定文件类型,如果昨天创建/修改的文件不存在,则执行X C:\backups\random-named-file.tib 27/03/2017 C:\backups\random-named-file.tib 28/03/2017 C:\backups\random-named-file.tib 29/03/2017 因此,如果昨天没有创建或修改一
C:\backups\random-named-file.tib 27/03/2017
C:\backups\random-named-file.tib 28/03/2017
C:\backups\random-named-file.tib 29/03/2017
因此,如果昨天没有创建或修改一个random-named-file.tib,这意味着备份失败,我会将输出写入控制台,说“备份失败”
有人有什么想法吗
编辑:
为了澄清这一点,备份文件来自一个无法检查丢失备份的自定义应用程序。我正在寻找的批处理文件解决方案将集成到我们的RMM平台中,该平台将获取批处理文件的结果,并为我们的服务台提供支持
备份应用程序将应用其自己的保留策略并删除任何超过4天的备份。
我只是想检测前一天是否错过了备份。文件名是可变的,唯一的常量是文件扩展名(*.tib)
此备份应用程序不编写事件日志,也不创建自己的日志文件,我可以解析失败消息。1)我建议您仔细阅读本文
2) 有一个windows计划程序,可以根据您的情况进行操作
3) 您可以编写脚本,在失败时向您发出警报
4) 我已经为你类似的问题找到了解决办法
TL:Dr-->参见第4步我设法按你的要求做了。请注意,由于它是Windows备份程序,因此应该有一种在备份失败时自动发出警报的方法 请注意这个例子:我是在一个特定的文件夹结构中完成的。如果要更改批处理文件的位置,则需要使用适当的路径更新批处理文件中的第二行代码。在本例中,路径是相对的,但很容易更改,因此我将此留给您 以下是我的文件夹结构:
\---batch # Folder with batch file
backups.txt # check_backups.bat creates this file
check_backups.bat # Batch file that does the job
| filename1.tib
| filename2.tib
| filename3.tib
| filename5.tib
以下是批处理文件(check_backups.bat)的代码:
如果缺少filename9.tib,您将收到一条消息:“备份失败:缺少的文件是filename9.tib”
如果一切顺利,你会收到一条信息:“一切顺利”。添加了更多信息以澄清我的情况。谢谢你提供的信息,但它不适用于我的情况。我添加了更多的信息来澄清。我不确定这是否有效,因为它没有读取文件日期,也没有检查前一天丢失的文件。我的文件夹中的文件数是可变的,我需要一种方法来检查上一天是否没有创建文件。@Cammo,我想我明白了。我看到你编辑了你的问题。我正在根据文件名检查序列。它实际上应该检查文件并检查是否有昨天创建的文件?是的,确实如此,唯一的相似之处是文件扩展名.tib。在我最初的示例中使用顺序文件名只会混淆这个问题,所以我修改了我的帖子。
@echo off
dir ..\* /a-d /b > "%~dp0\backups.txt"
set count=1
setlocal EnableDelayedExpansion
FOR /F "delims=*" %%A IN (backups.txt) DO (
SET fl=%%~nA
IF !fl:~8! NEQ !count! (
echo Backup Failed: Missing file is 'filename!count!.tib'
goto failed
)
SET /A count=!count!+1
)
echo All is good
:failed
pause