Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 根据日期检测丢失的文件_Windows_Date_Batch File_Server - Fatal编程技术网

Windows 根据日期检测丢失的文件

Windows 根据日期检测丢失的文件,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 因此,如果昨天没有创建或修改一

我需要手动监视基于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
因此,如果昨天没有创建或修改一个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