freelance-project-34-market.../d1/f4.py
2023-04-25 15:57:45 +03:00

74 lines
1.7 KiB
Python

import subprocess
import time
import os
import datetime
import traceback
import io
import pprint
def f1():
LOG_SIZE = 10 * 1024 * 1024
busybox_path = '%s/tmp/busybox' % os.environ['HOME']
log_path = '%s/p1/p1/log-f4.txt' % os.environ['HOME']
os.makedirs(os.path.dirname(log_path), exist_ok=True)
def trim_log():
if not os.path.exists(log_path):
return
log_size = 0
try:
log_stats = os.stat(log_path)
log_size = log_stats.st_size
except:
return
if log_size > LOG_SIZE:
try:
log_path2 = os.path.splitext(log_path)
os.rename(
log_path,
'%s-backup%s' % (
log_path2[0],
log_path2[1],
),
)
except:
return
def log(data=None):
with io.open(log_path, 'a') as f:
f.write(
'%s\n%s\n%s\n' % (
datetime.datetime.now().isoformat(),
pprint.pformat(data),
traceback.format_exc(),
)
)
trim_log()
while True:
try:
t1 = subprocess.check_output(
[busybox_path, 'ps', '-e', 'cpu']
).decode('utf-8')
t2 = t1.splitlines()
if len(t2) > 20:
log(
dict(t2=t2)
)
print('\n', end='')
print('\r%s %d' % (
datetime.datetime.now().isoformat(),
len(t2),
), end='')
except:
log()
time.sleep(10)
if __name__ == '__main__':
f1()