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