檢視oracle固定目錄下日誌和trace檔案大小指令碼

kisslfcr發表於2016-07-28
python剛入門,在Oracle官網看到個小指令碼,感覺挺有意思,經過測試切實可行。

[oracle@ycr python]$ more 5.py 
import datetime
import os
import sys
import time
from pprint import pprint


def readable(size):
  si=('B','KB','MB','GB','TB', 'PB', 'EB', 'ZB', 'YB')
  div = [n for n, m in enumerate(si) if pow(1024, n+1)>size][0]
  return "%.1f%s"%(size/float(pow(1024, div)), si[div])


total = {"log":0, "trace":0}
for path, dirs, files in os.walk(sys.argv[1]):
  for f in files:
    filepath = path+os.sep+f
    if os.stat(filepath).st_mtime>time.time()-(3600*24*int(sys.argv[2])):
      size = readable(os.path.getsize(filepath))
      age = datetime.datetime.fromtimestamp(os.stat(filepath).st_mtime)
      if f in ("log.xml", "alert.log", "listener.log"):
        filetype = "log"
      elif f.endswith("trc") or f.endswith("trm"):
        filetype = "trace"
      else:
        filetype = None
      if filetype:
        total[filetype] += os.path.getsize(filepath)


for a, b in total.items():
  total[a] = readable(b)


pprint(total)


------------------------------------------------------------------------------------
這只是個運維小指令碼,參考官網做的測試,希望以後可以自己寫一些有用處的。

Clark
2017.07.28

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29135257/viewspace-2122693/,如需轉載,請註明出處,否則將追究法律責任。

相關文章