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()
    

      

  • 相关阅读:
    服务返返回状态码详解
    LeetCode#28 Implement strStr()
    LeetCode#58 Length of Last Word
    LeetCode#66 Plus One
    spooling技术
    文件的打开与关闭
    DMA方式与通道方式
    中断向量、向量中断、向量地址
    中断响应优先级和中断处理优先级
    I/O接口
  • 原文地址:https://www.cnblogs.com/zhangjianghua/p/8920517.html
Copyright © 2011-2022 走看看