在备份中,我们经常会有异机备份、异地备份的服务器,通常有疑问,备份过去的文件是否是完整的,跟本机的文件是否一致,通常的做法就是比对MD5值,MD5值一致我们就认为文件是一致的,当然,最好的检验方式是做恢复,本文就不讨论恢复的事情,我们重点提供脚本来批量获取备份文件的md5值。
windows下获取MD5值的核心命令为:
certutil -hashfile <文件> MD5
我这边编写的成熟的批量命令为:体育
@echo off&setlocal enabledelayedexpansion
rem author 许建生
rem 发表于头条平台
rem 相关的变量
set dd=%date:~0,4%%date:~5,2%%date:~8,2%
rem 存放MD5值的文件,每日一个文件
set md5file=d:\ftpbak\logs\%dd%_md5.txt
echo %dd%
rem 每日新增文件列表
echo today file list: > %md5file%
for /r d:\ftpbak %%i in (*%dd%*) do (
echo %%i >> %md5file%
)
echo, >> %md5file%
rem 每日新增备份类的文件,排除log、txt等无效的文件
echo today bak file list: >> %md5file%
for /r d:\ftpbak %%i in (*%dd%*.tar.gz *%dd%*.zip *%dd%*.sql *%dd%*.bak *%dd%*.back) do (
echo %%i >> %md5file%
)
echo, >> %md5file%
rem 检查每个备份类文件的md5值
echo start check file MD5: >> %md5file%
for /r d:\ftpbak %%i in (*%dd%*.tar.gz *%dd%*.zip *%dd%*.sql *%dd%*.bak *%dd%*.back) do (
certutil -hashfile %%i MD5 >> %md5file%
echo, >> %md5file%
)
rem 如果是有某些独立的文件,可以用下面的类似脚本进行
certutil -hashfile D:\ftpbak\eHR\TMEHR%dd% MD5 >> 体育%md5file%
end
最后在利用windows的任务计划,就可以每天在某个时间点批量获取新增文件的MD5值。
效果:
如果有不清楚的欢迎留言问下,帮您看下什么问题。
如果觉得对您有用,欢迎转发、转载。
平台