Current Path :
/
opt
/
node_api
/
Or
Select Your Path :
Upload File :
New :
File
Dir
//opt/node_api/backup.hook_shared.v2
#!/usr/bin/python import os import json from operator import itemgetter def progress(): try: with open("/root/backup.conf/tmp/dir.list", 'r') as lv: volume = lv.read().split() if volume: summ1 = len(volume) last = volume[-1] lv.close() back_file = "/root/backup.conf/logs/backup_time.tmp" with open(back_file, 'r') as bt: status = bt.read().strip().split()[-3] bt.close() if last != status: summ2 = sum(1 for line in open(back_file, 'r')) ss = int(summ2) * 100 // int(summ1) return ss else: return 100 except Exception as e: pass def top_dir(): try: back_file = "/root/backup.conf/logs/backup_time.tmp" with open(back_file, 'r') as bt: status = bt.readlines() sort = [] for l in status: sort.append(l.split()[2]) s = [] top3 = sorted(sort, reverse=True)[0:3] for i in status: if i.split()[-1] in top3: s.append((i.split()[0], i.split()[-1])) slow = {} for x, y in sorted(s, key=itemgetter(1), reverse=True): slow[x] = y return slow except Exception as e: pass def backup_size(): stream = os.popen("mount | grep /backup | awk {'print$1'}") output = stream.readlines() if output: stream = os.popen('df -h | grep ' + output[0].rstrip() + ' | awk {\'print$5\'}') output = stream.readlines() return output[0].rstrip() def backup(): with open('/backup/backup.stat', 'r') as s: output = s.readlines()[-1] last_day = output[-3:].split()[0] pr = progress() if pr and pr >= 90: result = [last_day, backup_size(), pr, top_dir()] else: result = [last_day, backup_size(), pr, {}] print(json.dumps(result, indent=4)) if __name__=="__main__": backup()