系统完整性审核工具
shell脚本如下:
#!/bin/bash#
# 变量首先声明才能使用
shopt -s -o nounset
# 声明
# 建立日期
Date=$(date +'%Y%m%d%H%M%S')
# 加入审核的目录 #
Dirs="/bin /sbin /usr/bin /usr/sbin /lib /usr/local/sbin /usr/local/bin /usr/local/lib"
# 临时文件 #
TMP_file=$(mktemp /tmp/check.XXXXXX)
# 文件checksum存储文件
FP="/root/fp.$Date.chksum"
# 使用哪种checksum工具
Checker="/usr/bin/md5sum"
Find="/usr/bin/find"
# 函数区 #
scan_file() {
local f
for f in $Dirs
do
$Find $f -type f >> $TMP_file
done
}
# 读取文件建立每个文件的checksum值
cr_checksum_list() {
local f
if [ -f $TMP_file ]; then
for f in $(cat $TMP_file);
do
$Checker $f >> $FP
done
fi
}
rmTMP() {
[ -f $TMP_file ] && rm -rf $TMP_file
}
# 主程序区
# 扫描列表
scan_file
# 建立文件的checksum值
cr_checksum_list
# 清理临时文件
rmTMP
脚本执行:
[root@node3 ~]# sh my_filecheck.sh
进行校验:
md5sum -c fp.20141205160628.chksum
如果一切OK,都会显示OK的字样,如果有问题,就报相应的错误,如下:
[root@node3 ~]# md5sum -c fp.20141205160628.chksum | grep -v "OK"md5sum: /usr/bin/chattr: No such file or directory/usr/bin/chattr: FAILED open or readmd5sum: WARNING: 1 of 8267 listed files could not be read
本文出自 “城管实习大叔” 博客,请务必保留此出处http://diudiu.blog.51cto.com/6371183/1586734