首页建站经验 Linux系统递归生成目录中文件的md5的方法

Linux系统递归生成目录中文件的md5的方法

linux下使用md5sum递归生成整个目录的md5今天要用md5sum操作目录,递归生成目录下所有文件的md5值,结果发现它不支持递归操作于是写了个php脚本处理下代码:…

linux下使用md5sum递归生成整个目录的md5

今天要用md5sum操作目录,递归生成目录下所有文件的md5值,结果发现它不支持递归操作于是写了个php脚本处理下

代码:

<?php

$path ='/data/www/bbs/source';

$outfile = 'file.md5';

get_file_md5($path, $outfile);

function get_file_md5($path, $outfile)

{

$path = rtrim($path, '/');

if(function_exists('scandir'))

{

$files = scandir($path);

foreach($files as $v)

{

if($v != '.' && $v != '..')

{

$file = $path.'/'.$v;

if(is_dir($file))

{

get_file_md5($file, $outfile);

}else

{

file_put_contents($outfile, md5_file($file)." ".$file."/n", FILE_APPEND);

}

}

}

}else

{

$files = opendir($path);

while(($f = readdir($files)) !== false)

{

if($f == '.' || $f == '..')

continue;

$file = $path.'/'.$f;

if(is_dir($file))

{

get_file_md5($file, $outfile);

}else

{

file_put_contents($outfile, md5_file($file)." ".$file."/n", FILE_APPEND);

}

}

closedir($files);

}

}

注意:生成的md5值和文件之间是两个空格,否则导致错误如下

代码如下:

md5sum: file1.md5: no properly formatted MD5 checksum lines found

在来个更简单的,使用linux的find命令一句搞定

代码:

find /data/www/bbs/source -type f -print0 | xargs -0 md5sum > file2.md5

测试

md5sum -c file1.md5

md5sum -c file2.md5

如图所示

Linux系统递归生成目录中文件的md5的方法

这样把所有检测结果输出到屏幕上来了,如果最后一条显示这样的信息 md5sum: WARNING: 2 of 1147 computed checksums did NOT match 则说明在总共1147条中有2条是不符合的

然后我们可以

md5sum -c file1.md5 | grep FAILED

就很容易知道是哪些文件的篡改过

本文来自网络,不代表1号站长-站长学院|资讯交流平台立场。转载请注明出处: https://www.1cn.cc/jianzhan/jingyan/17627.html
上一篇discuz教程:如何修改导读页的标题(title)
下一篇 Yii扩展组件编写方法实例分析
admin

作者: admin

这里可以再内容模板定义一些文字和说明,也可以调用对应作者的简介!或者做一些网站的描述之类的文字或者HTML!

为您推荐

评论列表()

    联系我们

    联系我们

    0898-88888888

    在线咨询: QQ交谈

    邮箱: email@wangzhan.com

    工作时间:周一至周五,9:00-17:30,节假日休息

    关注微信
    微信扫一扫关注我们

    微信扫一扫关注我们

    关注微博
    返回顶部