Scenario: Copy logs that were created after certain timestamp to a destination directory.
Catch: there are different types of logs - Alarms, Notifications, Errors etc.
Here is my initial ugly code,
#!/usr/bin/python
import glob
import os
import datetime, time
import math
import shutil
class logCollector:
def __init__(self):
self.toLogpath = "/home/appuser/automation/logs"
self.applogPath = "/cluster/storage/no-backup/coremw/var/log/saflog"
def getFileTime(self,path):
_mtime = math.floor(os.path.getmtime(path))
return _mtime
def getLogsAfter(self, filePath, start):
logFiles = glob.glob(filePath)
fileList = list()
for file in logFiles:
fileTime = self.getFileTime(file)
if float(fileTime) >= math.floor(start):
fileList.append(file)
return fileList
def getNotificationLogAfter(self, start):
filePath = self.applogPath+"/*otif*log"
return self.getLogsAfter(filePath, start)
def getAlarmLogAfter(self, start):
filePath = self.applogPath+"/*larm*log"
return self.getLogsAfter(filePath, start)
def getErrorLogAfter(self, start):
filePath = self.applogPath+"/*Err*log"
return self.getLogsBWsecs(filePath, start)
def copyTraces(self, time):
start_time=time
fileList = list()
fileList.extend(self.getNotificationLogAfter(start_time))
fileList.extend(self.getAlarmLogAfter(start_time))
fileList.extend(self.getErrorLogAfter(start_time))
for logfile in fileList:
if os.path.isfile(logfile):
shutil.copy(logfile, self.toLogpath)
else:
print(logfile+" is not found!!!")
After Learning dictionary in python,
#!/usr/bin/python
import glob
import os
import shutil
import math
class myTraceCollector:
destination = "/home/appuser/automation/logs"
appTraces ={
"Alarm Logs":"/cluster/storage/no-backup/coremw/var/log/saflog/*larm*log",
"Notification Logs":"/cluster/storage/no-backup/coremw/var/log/saflog/*otif*log",
"Error Logs":"/cluster/storage/no-backup/coremw/var/log/saflog/*Err*log"
}
def getTracesAfter(self, time):
for fileType, filePath in self.appTraces.iteritems():
print fileType
tracesList = glob.glob(filePath)
for file in tracesList:
fileTime = os.path.getmtime(file)
if float(fileTime) >= math.floor(time):
shutil.copy(file, self.destination)
print file+" copied"
It is wow! experience for me...
Catch: there are different types of logs - Alarms, Notifications, Errors etc.
Here is my initial ugly code,
#!/usr/bin/python
import glob
import os
import datetime, time
import math
import shutil
class logCollector:
def __init__(self):
self.toLogpath = "/home/appuser/automation/logs"
self.applogPath = "/cluster/storage/no-backup/coremw/var/log/saflog"
def getFileTime(self,path):
_mtime = math.floor(os.path.getmtime(path))
return _mtime
def getLogsAfter(self, filePath, start):
logFiles = glob.glob(filePath)
fileList = list()
for file in logFiles:
fileTime = self.getFileTime(file)
if float(fileTime) >= math.floor(start):
fileList.append(file)
return fileList
def getNotificationLogAfter(self, start):
filePath = self.applogPath+"/*otif*log"
return self.getLogsAfter(filePath, start)
def getAlarmLogAfter(self, start):
filePath = self.applogPath+"/*larm*log"
return self.getLogsAfter(filePath, start)
def getErrorLogAfter(self, start):
filePath = self.applogPath+"/*Err*log"
return self.getLogsBWsecs(filePath, start)
def copyTraces(self, time):
start_time=time
fileList = list()
fileList.extend(self.getNotificationLogAfter(start_time))
fileList.extend(self.getAlarmLogAfter(start_time))
fileList.extend(self.getErrorLogAfter(start_time))
for logfile in fileList:
if os.path.isfile(logfile):
shutil.copy(logfile, self.toLogpath)
else:
print(logfile+" is not found!!!")
After Learning dictionary in python,
#!/usr/bin/python
import glob
import os
import shutil
import math
class myTraceCollector:
destination = "/home/appuser/automation/logs"
appTraces ={
"Alarm Logs":"/cluster/storage/no-backup/coremw/var/log/saflog/*larm*log",
"Notification Logs":"/cluster/storage/no-backup/coremw/var/log/saflog/*otif*log",
"Error Logs":"/cluster/storage/no-backup/coremw/var/log/saflog/*Err*log"
}
def getTracesAfter(self, time):
for fileType, filePath in self.appTraces.iteritems():
print fileType
tracesList = glob.glob(filePath)
for file in tracesList:
fileTime = os.path.getmtime(file)
if float(fileTime) >= math.floor(time):
shutil.copy(file, self.destination)
print file+" copied"
It is wow! experience for me...
No comments:
Post a Comment