zoukankan      html  css  js  c++  java
  • python之返回状态commands模块

    需要得到命令执行的状态则需要判断$?的值, 在Python中有一个模块commands很容易做到以上的效果.

    commands.getstatusoutput(cmd)  返回一个元组(status,output) 
    status代表的shell命令的返回态,如果成功的话是0;output是shell的返回的结果

     实例:

    >>> import commands
    >>> commands.getstatusoutput('ls /bin/ls')
    (0, '/bin/ls')
    >>> commands.getstatusoutput('cat /bin/junk')
    (256, 'cat: /bin/junk: No such file or directory')
    >>> commands.getstatusoutput('/bin/junk')
    (256, 'sh: /bin/junk: not found')
    >>> commands.getoutput('ls /bin/ls')
    '/bin/ls'
    

      

     应用场景-----监控磁盘状态

    #!/usr/bin/env python
    #coding:utf-8
    import commands
    import sys
    import time
    
    STATE_OK=0
    STATE_WARNING=1
    STATE_CRITICAL=2
    STATE_UNKNOWN=3
    
    def foo():
        j = 0
        try:
            for i in ['a','b','c']:
                stat=commands.getstatusoutput('smartctl -H /dev/sd%s' %i)
                if stat[0] == 0:
                    pass
                    #print '/dev/sd%s is ok;' %i,
                else:
                    print '/dev/sd%s is error;' %i,
                    j+=1
    
            if j != 0:
                print 'Error - the %s diskes is error,' %j,time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
                sys.exit(STATE_CRITICAL)
            else:
    
                print 'OK - the disk (from a to k),all is OK,',time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
                sys.exit(STATE_OK)
    
    
        except ValueError:
            print "UNKNOWN"
            sys.exit(STATE_UNKNOWN)
    foo()
    

      

  • 相关阅读:
    poj1579
    poj1517
    poj1519
    poj1151
    poj1042
    AmCharts Flash 图形报表工具
    DataTable,List和Json的装换
    Indexing Service OpenQuery()
    MSSQL获取当前插入的ID号及在高并发的时候处理方式
    SQL2005 索引优化(转)
  • 原文地址:https://www.cnblogs.com/zhangjianghua/p/8920517.html
Copyright © 2011-2022 走看看