亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

Python2.x利用commands模塊執行Linux shell命令

2020-01-04 17:38:34
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Python2.x利用commands模塊執行Linux shell命令 的相關資料,需要的朋友可以參考下
 

用Python寫運維腳本時,經常需要執行linux shell的命令,Python中的commands模塊專門用于調用Linux shell命令,并返回狀態和結果,下面是commands模塊的3個主要函數:

1. commands.getoutput('shell command')

執行shell命令,返回結果(string類型)

 

復制代碼代碼如下:

>>> commands.getoutput('pwd')
'/home/oracle'

 

2. commands.getstatus('file')

該函數已被python丟棄,不建議使用,它返回 ls -ld file 的結果(String)(返回結果太奇怪了,難怪被丟棄)

 

復制代碼代碼如下:

>>> commands.getstatus('admin.tar')
'-rw-rw-r-- 1 oracle oracle 829440 Jan 29 10:36 admin.tar' 

 

3. commands.getstatusoutput('shell command')

執行shell命令, 返回兩個元素的元組tuple(status, result),status為int類型,result為string類型。

cmd的執行方式是{ cmd ; } 2>&1, 故返回結果包含標準輸出和標準錯誤.

 

復制代碼代碼如下:

>>> commands.getstatusoutput('pwd')
(0, '/home/oracle') 

 

下面的一個腳本利用commands模塊檢測磁盤使用率,標識出大于10%的磁盤(百分比可根據實際情況調整,一般設為90%,本例為了更好的說明情況,設為10%):

import commandsthreshold = 10flag = Falsetitle=commands.getoutput("df -h|head -1")'''Check sda disk space usage like below format:/dev/sda2 20G 2.3G 17G 13% //dev/sda6 20G 306M 19G 2% /var/dev/sda3 49G 2.8G 44G 7% /home/dev/sda5 49G 4.5G 42G 10% /opt/dev/sda1 194M 12M 172M 7% /boot'''chkDiskList=commands.getoutput("df -h|grep sda").split('/n')usedPercents=commands.getoutput("df -h|grep sda|awk '{print $5}'|grep -Eo '[0-9]+'").split('/n')for i in range(0,len(usedPercents)):if int(usedPercents[i]) >= threshold:chkDiskList[i] += ' ----Caution!!! space usage >= ' + str(threshold)flag = True'''Check disk space usage like below format:/dev/mapper/backup-backup_lv751G 14G 699G 2% /backup/dev/mapper/data-data_lv751G 172G 540G 25% /data''' chkDiskList_2=commands.getoutput("df -h|grep -v sda|grep -v tmp|grep -v system").split('/n')usedPercents_2=commands.getoutput("df -h|grep -v map|grep -v sda|grep -v tmp|grep -v system|awk '{print $4}'|grep -Eo '[0-9]+'").split('/n')for i in range(0,len(usedPercents_2)): if int(usedPercents_2[i]) >= threshold:chkDiskList_2[i*2 + 1] += ' ----Caution!!! space usage >= ' + str(threshold)flag = Trueif flag == True:#combine tile, chkDiskList, chkDisklist_2result = [title,]result.extend(chkDiskList)result.extend(chkDiskList_2)for line in result:print line

假設當前的磁盤使用率如下:

[oracle@lx200 ~/admin/python]$ df -hFilesystem Size Used Avail Use% Mounted on/dev/sda2 20G 2.3G 17G 13% //dev/sda6 20G 306M 19G 2% /var/dev/sda3 49G 2.8G 44G 7% /home/dev/sda5 49G 4.5G 42G 10% /opt/dev/sda1 194M 12M 172M 7% /boottmpfs 18G 0 18G 0% /dev/shm/dev/mapper/backup-backup_lv751G 14G 699G 2% /backup/dev/mapper/data-data_lv751G 174G 539G 25% /data 

執行該腳本后的結果如下:

Filesystem Size Used Avail Use% Mounted on/dev/sda2 20G 2.3G 17G 13% / ----Caution!!! space usage >= 10/dev/sda6 20G 306M 19G 2% /var/dev/sda3 49G 2.8G 44G 7% /home/dev/sda5 49G 4.5G 42G 10% /opt ----Caution!!! space usage >= 10/dev/sda1 194M 12M 172M 7% /boot/dev/mapper/backup-backup_lv751G 14G 699G 2% /backup/dev/mapper/data-data_lv751G 174G 539G 25% /data ----Caution!!! space usage >= 10

python Commands模塊 使用方法

要獲得shell命令的輸出只需要`cmd`就可以了,
需要得到命令執行的狀態則需要判斷$?的值, 在Python中有一個模塊commands也很容易做到以上的效果.

看一下三個函數:

1). commands.getstatusoutput(cmd)

用os.popen()執行命令cmd, 然后返回兩個元素的元組(status, result). cmd執行的方式是{ cmd ; } 2>&1, 這樣返回結果里面就會包含標準輸出和標準錯誤.

2). commands.getoutput(cmd)

只返回執行的結果, 忽略返回值.

3). commands.getstatus(file)

返回ls -ld file執行的結果.

看一下這些函數使用的例子:

>>> 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'>>> commands.getstatus('/bin/ls')'-rwxr-xr-x 1 root 13352 Oct 14 1994 /bin/ls'

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本精品视频网站| 亚洲成人激情在线观看| 国产精品自在线| 欧美精品videofree1080p| 国产精品视频大全| 一区国产精品视频| 国产精品1234| 精品动漫一区二区三区| 色偷偷av一区二区三区乱| 日韩在线视频导航| 国产在线观看精品一区二区三区| 亚洲成人av在线播放| 欧美亚洲在线观看| 欧美老女人性生活| 欧美成年人视频网站| 国产伊人精品在线| 欧美日韩国产一区二区三区| 亚洲电影在线观看| 欧美不卡视频一区发布| 国产午夜精品一区理论片飘花| 正在播放欧美视频| 91精品国产免费久久久久久| 精品一区二区亚洲| 国产精品国产三级国产专播精品人| 国产精品视频精品| 中文字幕日韩av电影| 97视频在线观看播放| 久久久久久久999| 国产在线日韩在线| 日韩视频永久免费观看| 亚洲天堂网站在线观看视频| 国产成人精品一区| 在线色欧美三级视频| 成人天堂噜噜噜| 国产97在线观看| 国产精品老女人视频| 中文字幕欧美亚洲| 国产99久久精品一区二区| 91高清免费在线观看| 久久夜色撩人精品| 色偷偷888欧美精品久久久| 亚洲v日韩v综合v精品v| 国产精品久久不能| 亚洲精品免费av| 久久亚洲精品视频| 欧美在线观看一区二区三区| 亚洲国产精品久久久久秋霞蜜臀| 亚洲欧洲国产伦综合| 精品二区三区线观看| 亚洲综合第一页| www.国产精品一二区| 亚洲大尺度美女在线| 亚洲成人网av| 国产精品中文字幕在线观看| 亚洲成**性毛茸茸| 欧美专区第一页| 日韩精品免费一线在线观看| 91精品国产91久久久久久| 另类少妇人与禽zozz0性伦| 亚洲va久久久噜噜噜久久天堂| 视频在线观看一区二区| 日韩欧美国产免费播放| 久久久噜噜噜久久中文字免| 久久久久国产精品www| 色999日韩欧美国产| 美日韩精品视频免费看| 精品久久久久久国产91| 欧美日韩亚洲91| 成人a级免费视频| 日韩欧美视频一区二区三区| 亚洲国产精品悠悠久久琪琪| 一区二区在线视频| 国产精品扒开腿做爽爽爽视频| 中文字幕亚洲自拍| 日韩av在线高清| 国产精品久久久久久影视| 一区二区中文字幕| 国产在线不卡精品| 91精品久久久久久久久久| 国产精品免费小视频| 成人精品aaaa网站| 亚洲男人天堂视频| 精品久久久久久久久久久| 亚洲女人天堂视频| 欧美大尺度电影在线观看| 亚洲福利在线看| 亚洲天堂av高清| 久久的精品视频| 福利视频第一区| 亚洲欧美制服综合另类| www.久久久久久.com| 日韩福利视频在线观看| 国内精品久久久久久影视8| 91精品久久久久久久久中文字幕| 久久久成人精品| 精品美女国产在线| 日韩中文视频免费在线观看| 日韩在线一区二区三区免费视频| 国产精品免费久久久| 狠狠色香婷婷久久亚洲精品| 欧美日韩中文字幕日韩欧美| 亚洲精品电影网在线观看| 久久亚洲国产成人| 欧美天堂在线观看| 精品久久久久久久久久国产| 77777亚洲午夜久久多人| 久久精品国产电影| 日韩电视剧在线观看免费网站| 欧美天天综合色影久久精品| 97婷婷大伊香蕉精品视频| 国产欧美日韩视频| 国产高清视频一区三区| 亚洲白虎美女被爆操| 国产精品久久久999| 日韩电影在线观看中文字幕| 国内精品久久久久久久久| 国产精品一区二区在线| 2019日本中文字幕| 91精品国产高清自在线看超| 国产z一区二区三区| 九九精品视频在线| 97人人模人人爽人人喊中文字| 欧美日韩成人在线视频| 久久精品国产成人精品| 亚洲自拍偷拍色片视频| 日韩av影院在线观看| 久久久久久久色| 九九九久久国产免费| 亚洲免费中文字幕| 欧美国产日韩中文字幕在线| 国内精品久久久久久久| 91夜夜揉人人捏人人添红杏| 欧美激情一区二区久久久| 4438全国亚洲精品在线观看视频| 久久国产精彩视频| 日韩欧美在线视频免费观看| 欧美一级黄色网| 久久久久久com| 精品亚洲男同gayvideo网站| 日韩免费电影在线观看| 成人在线免费观看视视频| 热re91久久精品国99热蜜臀| 2019中文在线观看| 国产视频精品自拍| 亚洲国产小视频在线观看| 亚洲一区二区免费在线| 国产综合在线观看视频| 国产网站欧美日韩免费精品在线观看| 91网站在线看| 欧美日韩一区二区三区在线免费观看| 91精品国产乱码久久久久久久久| 亚洲高清在线观看| 91精品久久久久久久久青青| 亚洲福利视频专区| 777国产偷窥盗摄精品视频| 美日韩在线视频| 久久久国产一区二区三区| 福利视频导航一区| 久久久免费高清电视剧观看| 2019日本中文字幕| 欧美第一黄色网| 欧美国产日本在线| 亚洲欧美在线看| 欧美大成色www永久网站婷|