Files
kefu/im/server-fix-20260831/verify_summary.py
T
2026-09-03 08:38:17 +08:00

24 lines
1.5 KiB
Python

import json,os,subprocess,collections,datetime
base='/www/backup/txiaw-mysql-fix-20260831'
p=base+'/verification-result.json'
result={'time':datetime.datetime.now().isoformat(),'full_verification_saved':os.path.exists(p)}
if os.path.exists(p):
d=json.load(open(p));result['saved_time']=d['time'];result['mysql_status']=d['mysql_status'];result['burst_statuses']=d['burst_statuses'];result['recent_access_status_sample']=d['recent_access_status_sample']
vm=subprocess.check_output(['vmstat','1','3'],universal_newlines=True).splitlines()
rows=[r.split() for r in vm[-2:]]
result['cpu_sample']={'idle_pct':sum(int(r[14]) for r in rows)/len(rows),'io_wait_pct':sum(int(r[15]) for r in rows)/len(rows)}
result['uptime']=subprocess.check_output(['uptime'],universal_newlines=True).strip()
test=subprocess.run(['/www/server/nginx/sbin/nginx','-t'],stdout=subprocess.PIPE,stderr=subprocess.PIPE,universal_newlines=True,timeout=10)
result['nginx_config_ok']=test.returncode==0
result['index_record_saved']=os.path.exists(base+'/index-result.json')
result['cache_record_saved']=os.path.exists(base+'/cache-result.json')
result['backup_bytes']=os.path.getsize(base+'/gxl_news-before.sql.gz')
lines=subprocess.check_output(['tail','-n','1000','/www/wwwlogs/www.txiaw.com.log']).decode('utf-8','replace').splitlines()
c=collections.Counter()
for l in lines:
a=l.split('"')
if len(a)>2 and a[2].split():c[a[2].split()[0]]+=1
result['last_1000_statuses']=dict(c)
json.dump(result,open(base+'/final-summary.json','w'),indent=2)
print(json.dumps(result),flush=True)