Merge branch 'ent-4808-plugin-update-md5' into 'develop'
New util - update remote config files MD5 See merge request artica/pandorafms!2810
This commit is contained in:
commit
9617d08df7
|
@ -0,0 +1,68 @@
|
|||
#!/usr/bin/python
|
||||
# Kevin Rojas 2018
|
||||
|
||||
import os
|
||||
import glob
|
||||
import hashlib
|
||||
import argparse
|
||||
|
||||
|
||||
def main():
|
||||
global args
|
||||
global confdir
|
||||
global md5dir
|
||||
global agents
|
||||
|
||||
# Argument parser
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('-r', '--run', required=False, dest='run', action='store_true',
|
||||
help='run the tool to recreate md5 files')
|
||||
parser.add_argument('-d', dest='dir', default='/var/spool/pandora/data_in',
|
||||
help='data_in folder path (default /var/spool/pandora/data_in)')
|
||||
parser.add_argument('-v', dest='verb', action='store_true',
|
||||
help='verbose mode: Shows the files being updated')
|
||||
|
||||
# Definitions
|
||||
args = vars(parser.parse_args())
|
||||
datadir = args['dir']
|
||||
confdir = datadir + '/conf/'
|
||||
md5dir = datadir + '/md5/'
|
||||
agents = glob.glob(confdir + '*.conf') # Check folder for .conf files
|
||||
|
||||
# Run script or show help
|
||||
if len(args) > 0 and args['run']:
|
||||
updatemd5()
|
||||
else:
|
||||
parser.print_help()
|
||||
|
||||
|
||||
def md5sum(filename, blocksize=65536):
|
||||
# Open files and calculate MD5 from its content
|
||||
hash = hashlib.md5()
|
||||
with open(filename, 'rb') as f:
|
||||
for block in iter(lambda: f.read(blocksize), b''):
|
||||
hash.update(block)
|
||||
return hash.hexdigest()
|
||||
|
||||
|
||||
def updatemd5():
|
||||
debug = args['verb']
|
||||
if not agents:
|
||||
print(' ERROR: There are no .conf files at ' +
|
||||
confdir + '. Please check the path provided.')
|
||||
else:
|
||||
count = 0
|
||||
for i in agents:
|
||||
agentmd5 = md5dir + os.path.basename(os.path.splitext(i)[0]) + '.md5'
|
||||
with open(agentmd5, 'w') as f:
|
||||
f.write(md5sum(i))
|
||||
f.close()
|
||||
count += 1
|
||||
|
||||
if debug:
|
||||
print(os.path.basename(os.path.splitext(i)[0]) + '--> OK')
|
||||
|
||||
print('Number of configuration files updated: ' + str(count))
|
||||
|
||||
|
||||
main()
|
Loading…
Reference in New Issue