- 论坛徽章:
- 4
|
系统不一样,不行的话,自己看着改吧- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- __author__ = 'shengwei ma'
- '''http://bbs.chinaunix.net/thread-4243625-1-1.html'''
- from subprocess import *
- from datetime import date, time, datetime, timedelta
- def work():
- handle = open(r'./test.txt', 'a+')
- proc1 = Popen(["prstat", "-s", "size", "-Z", "-c", "-n", "20", "60"], stdout=handle)
- proc1.wait()
- proc2 = Popen(["zonestat", "-r", "memory", "60"], stdout=handle)
- proc2.wait()
- proc3 = Popen(["zonestat", "-r", "summary", "60"], stdout=handle)
- proc3.wait()
- proc4 = Popen(["echo", "\"::memstat\"", "|mdb", "-k"], stdout=handle) # 不太确定是否正确
- proc4.wait()
- proc5 = Popen(["df", "-h", "-F", "tmpfs"], stdout=handle)
- proc5.wait()
- def runTask(func, day=0, hour=0, min=0, second=0):
- # Init time
- now = datetime.now()
- strnow = now.strftime('%Y-%m-%d %H:%M:%S')
- print "now:", strnow
- # First next run time
- period = timedelta(days=day, hours=hour, minutes=min, seconds=second)
- next_time = now + period
- strnext_time = next_time.strftime('%Y-%m-%d %H:%M:%S')
- print "next run:", strnext_time
- while True:
- # Get system current time
- iter_now = datetime.now()
- iter_now_time = iter_now.strftime('%Y-%m-%d %H:%M:%S')
- if str(iter_now_time) == str(strnext_time):
- # Get every start work time
- print "start work: %s" % iter_now_time
- # Call task func
- func()
- print "task done."
- # Get next iteration time
- iter_time = iter_now + period
- strnext_time = iter_time.strftime('%Y-%m-%d %H:%M:%S')
- print "next_iter: %s" % strnext_time
- # Continue next iteration
- continue
- runTask(work, day=1, hour=2, min=1) # 可以自己改
复制代码 |
|