系統完整性審覈工具
node
shell腳本以下: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
腳本執行:bash
[root@node3 ~]# sh my_filecheck.sh
進行校驗:ide
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 read md5sum: WARNING: 1 of 8267 listed files could not be read