免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1642 | 回复: 9
打印 上一主题 下一主题

求助!求助! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-04-20 11:22 |只看该作者 |倒序浏览

Sun T5-8机器想把如下几个命令的信息用脚本隔一段时间收集一次,放在某个地方;请求大侠帮忙!

top 20 bigger consumers of memory + zone memory usage every minute
# prstat -s size -Z -c -n 20 60

zone memory usage,  every minute
# zonestat -r memory 60

zone summary usage,  every minute
# zonestat -r summary 60

memory usage kernel vs userland (one shot)
# echo "::memstat" |mdb -k

usage of temporary RAM-based  filesystems (eg /tmp)
# df -h -F tmpfs

论坛徽章:
4
程序设计版块每日发帖之星
日期:2015-10-14 06:20:00每日论坛发贴之星
日期:2015-10-14 06:20:00程序设计版块每日发帖之星
日期:2016-05-02 06:20:00程序设计版块每日发帖之星
日期:2016-05-08 06:20:00
2 [报告]
发表于 2016-04-20 12:05 |只看该作者
系统不一样,不行的话,自己看着改吧
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. __author__ = 'shengwei ma'
  4. '''http://bbs.chinaunix.net/thread-4243625-1-1.html'''
  5. from subprocess import *
  6. from datetime import date, time, datetime, timedelta


  7. def work():
  8.     handle = open(r'./test.txt', 'a+')
  9.     proc1 = Popen(["prstat", "-s", "size", "-Z", "-c", "-n", "20", "60"], stdout=handle)
  10.     proc1.wait()
  11.     proc2 = Popen(["zonestat", "-r", "memory", "60"], stdout=handle)
  12.     proc2.wait()
  13.     proc3 = Popen(["zonestat", "-r", "summary", "60"], stdout=handle)
  14.     proc3.wait()
  15.     proc4 = Popen(["echo", "\"::memstat\"", "|mdb", "-k"], stdout=handle)  # 不太确定是否正确
  16.     proc4.wait()
  17.     proc5 = Popen(["df", "-h", "-F", "tmpfs"], stdout=handle)
  18.     proc5.wait()


  19. def runTask(func, day=0, hour=0, min=0, second=0):
  20.     # Init time
  21.     now = datetime.now()
  22.     strnow = now.strftime('%Y-%m-%d %H:%M:%S')
  23.     print "now:", strnow
  24.     # First next run time
  25.     period = timedelta(days=day, hours=hour, minutes=min, seconds=second)
  26.     next_time = now + period
  27.     strnext_time = next_time.strftime('%Y-%m-%d %H:%M:%S')
  28.     print "next run:", strnext_time
  29.     while True:
  30.         # Get system current time
  31.         iter_now = datetime.now()
  32.         iter_now_time = iter_now.strftime('%Y-%m-%d %H:%M:%S')
  33.         if str(iter_now_time) == str(strnext_time):
  34.             # Get every start work time
  35.             print "start work: %s" % iter_now_time
  36.             # Call task func
  37.             func()
  38.             print "task done."
  39.             # Get next iteration time
  40.             iter_time = iter_now + period
  41.             strnext_time = iter_time.strftime('%Y-%m-%d %H:%M:%S')
  42.             print "next_iter: %s" % strnext_time
  43.             # Continue next iteration
  44.             continue


  45. runTask(work, day=1, hour=2, min=1)  # 可以自己改
复制代码

论坛徽章:
0
3 [报告]
发表于 2016-04-20 12:24 |只看该作者
再请教下哈!
这个脚本直接加到哪里呀?
结果是收集在哪里呢?

我对这块还是菜鸟,呵呵!
回复 2# mswsg


   

论坛徽章:
0
4 [报告]
发表于 2016-04-20 12:52 |只看该作者
回复 1# cassie_cz

把几个命令用shell脚本串起来,追加到一个log文件,然后配置一个crontab.网上多得是用法介绍。不必用Python。
   

论坛徽章:
0
5 [报告]
发表于 2016-04-20 12:54 |只看该作者
我对solaris不懂;刚刚新接触;

能否帮忙下哈!

回复 4# Hadron74


   

论坛徽章:
4
程序设计版块每日发帖之星
日期:2015-10-14 06:20:00每日论坛发贴之星
日期:2015-10-14 06:20:00程序设计版块每日发帖之星
日期:2016-05-02 06:20:00程序设计版块每日发帖之星
日期:2016-05-08 06:20:00
6 [报告]
发表于 2016-04-20 13:05 |只看该作者
可以将代吗保存为 test.py ,直接在该目录下运行,python test.py
结果就放在当前目录下,
另外你的python环境要配置好

论坛徽章:
0
7 [报告]
发表于 2016-04-20 15:18 |只看该作者
要运行很久吗?

我都运行了快30分钟了,还没好?


回复 6# mswsg


   

论坛徽章:
4
程序设计版块每日发帖之星
日期:2015-10-14 06:20:00每日论坛发贴之星
日期:2015-10-14 06:20:00程序设计版块每日发帖之星
日期:2016-05-02 06:20:00程序设计版块每日发帖之星
日期:2016-05-08 06:20:00
8 [报告]
发表于 2016-04-20 16:16 |只看该作者
我擦了,你没改时间呢
回复 7# cassie_cz

默认的是1天2小时1分钟之后再执行
  1. runTask(work, day=1, hour=2, min=1)  # 可以自己改
复制代码
改成这个就是半分钟执行一次
  1. runTask(work, day=0, hour=0, min=0.5)  # 可以自己改
复制代码

论坛徽章:
0
9 [报告]
发表于 2016-04-22 15:13 |只看该作者
谢谢大神!

虽然只有显示第一条命令记录;

还是非常感谢!
回复 8# mswsg


   

论坛徽章:
4
程序设计版块每日发帖之星
日期:2015-10-14 06:20:00每日论坛发贴之星
日期:2015-10-14 06:20:00程序设计版块每日发帖之星
日期:2016-05-02 06:20:00程序设计版块每日发帖之星
日期:2016-05-08 06:20:00
10 [报告]
发表于 2016-04-22 16:36 |只看该作者
你要确定,这几个命令在shell中能够正常运行,比如那个df 命令,我的系统就不识别 -F 。
如果命令都不能在shell中正常运行,那在这里也不行。回复 9# cassie_cz


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP