0
다음 코드를 작성 했으므로 작동하지 않으며 그 이유를 알 수 없습니다. 코드 : 파일 인 경우 파일 Python 파일 무결성 모니터링
- 이전 MD5 해시의 파일에
- 루프 디렉토리를 통해
- 검사합니다 activefile을
- 실행합니다 MD5 해시를 대상 파일의 목록을 읽 새 로그로 기록됩니다.
- 로그가 있지만 변경된 로그는 변경 사항을 기록하고 변경 사항을 기록합니다.
- 새롭지 만 변경 사항이없는 경우 NG 여기
import hashlib
import logging as log
import optparse
import os
import re
import sys
import glob
import shutil
def md5(fileName):
"""Compute md5 hash of the specified file"""
try:
fileHandle = open(fileName, "rb")
except IOError:
return
m5Hash = hashlib.md5()
while True:
data = fileHandle.read(8192)
if not data:
break
m5Hash.update(data)
fileHandle.close()
return m5Hash.hexdigest()
req = open("requested.txt")
for reqline in req:
reqName = reqline[reqline.rfind('/') + 1:len(reqline) - 1]
reqDir = reqline[0:reqline.rfind('/') + 1]
tempFile = open("activetemp.txt", 'w')
for name in glob.glob(reqDir + reqName):
fileHash = md5(name)
actInt = 0
if fileHash != None:
actFile = open("activefile.txt")
for actLine in actFile:
actNameDir = actLine[0:actLine.rfind(' : ')]
actHash = actLine[actLine.rfind(' : ') + 3:len(actLine) -1]
if actNameDir == name and actHash == fileHash:
tempFile.write(name + " : " + fileHash + "\n")
actInt = 1
print fileHash
print actHash
print name
print actNameDir
if actNameDir == name and actHash != fileHash:
fimlog = open("fimlog.txt", 'a')
tempFile.write(name + " : " + actHash + "\n")
actInt = 1
fimlog.write("FIM Log: The file " + name + " was modified: " + actHash + "\n")
if actInt == 0:
fimlog = open("fimlog.txt", 'a')
fimlog.write("FIM Log: The file " + name + " was created: " + fileHash + "\n")
tempFile.write(name + " : " + fileHash + "\n")
shutil.copyfile("activetemp.txt", "activefile.txt")
문제는 일부 파일이 activefile에 기록되지 않고 일부 파일이 기록되지 않는다는 것입니다. 처음 50 정도는 activefile에 쓰여지지 않고 이유를 알 수 없습니다. – TrevJen