cat my_filecheck.sh
#!/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
那要看你的文件系统是什么格式的了,假设你的文件系统是ext3(假如不是ext3那就把下面的ext3换成别的),假设你要检查的分区是/dev/sda1, 那命令就是:fsck -t ext3 /dev/sda1 -r
这样它会检查文件系统完整性,如果有什么问题,它会提示问你要不要修复的,如果你懒得理它,想让它自己修复,那就在末尾加上-y参数。
你为什么不man fsck自己看一下它的说明呢?
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)