栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Linux下 python脚本的编写

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux下 python脚本的编写

服务器测试中,我们就经常用到shell和python脚本。测试时间长了,这两种语言就有必要学习一下。下面我们将一个简单的shell脚本转化为python。
比如 一个检测ssd smart log的脚本

#!/bin/bash
for ssd in `lsscsi  |grep -i disk |awk '{print $NF}'`
do
        echo "==========$ssd===========" |tee -a ssd.log
        smartctl -i $ssd |tee -a ssd.log
done

log如下:

[root@localhost ~]# cat ssd.log
==========/dev/sda===========
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-3.10.0-1160.49.1.el7.x86_64] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Vendor:               AVAGO
Product:              MR9361-8i
Revision:             4.68
Compliance:           SPC-3
User Capacity:        479,559,942,144 bytes [479 GB]
Logical block size:   512 bytes
Physical block size:  4096 bytes
Logical Unit id:      0x600605b0110407b02957eacaa6c2f752
Serial number:        0052f7c2a6caea5729b0070411b00506
Device type:          disk
Local Time is:        Thu Jan 27 16:38:04 2022 CST
SMART support is:     Unavailable - device lacks SMART capability.

==========/dev/sdb===========
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-3.10.0-1160.49.1.el7.x86_64] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Vendor:               AVAGO
Product:              MR9361-8i
Revision:             4.68
Compliance:           SPC-3
User Capacity:        479,559,942,144 bytes [479 GB]
Logical block size:   512 bytes
Physical block size:  4096 bytes
Logical Unit id:      0x600605b0110407b02957eacba6c8d581
Serial number:        0081d5c8a6cbea5729b0070411b00506
Device type:          disk
Local Time is:        Thu Jan 27 16:38:04 2022 CST
SMART support is:     Unavailable - device lacks SMART capability.

==========/dev/sdc===========
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-3.10.0-1160.49.1.el7.x86_64] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org


现在用python的语言转化一下,用os模块调用指令

import os
ssd = os.popen("lsscsi  |grep -i avago |awk '{print $NF}' ").read()
print ssd

打印结果如下:

[root@localhost ~]# python try.py
/dev/sda
/dev/sdb
/dev/sdc
/dev/sdd
/dev/sde
/dev/sdf
/dev/sdg
/dev/sdh
/dev/sdi
/dev/sdj
/dev/sdk
/dev/sdl

[root@localhost ~]# cat try.py

最后一行为空,遍历的时候需要去掉最后一行,然后遍历列表

import os
ssd = os.popen("lsscsi  |grep -i avago |awk '{print $NF}' ").read()
print ssd.split('n')[:-1]

结果如下:

[root@localhost ~]# python try.py
['/dev/sda', '/dev/sdb', '/dev/sdc', '/dev/sdd', '/dev/sde', '/dev/sdf', '/dev/sdg', '/dev/sdh', '/dev/sdi', '/dev/sdj', '/dev/sdk', '/dev/sdl']

然后 输出 smart log信息

import os
ssd = os.popen("lsscsi  |grep -i avago |awk '{print $NF}' ").read()
for i in ssd.split('n')[:-1]:
    os.popen("echo ========="+i+"=======>>1.log")
    c = os.popen("smartctl -i {} >> 1.log".format(i)).read()

结果如下:

[root@localhost ~]# cat 1.log
=========/dev/sda=======
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-3.10.0-1160.49.1.el7.x86_64] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Vendor:               AVAGO
Product:              MR9361-8i
Revision:             4.68
Compliance:           SPC-3
User Capacity:        479,559,942,144 bytes [479 GB]
Logical block size:   512 bytes
Physical block size:  4096 bytes
Logical Unit id:      0x600605b0110407b02957eacaa6c2f752
Serial number:        0052f7c2a6caea5729b0070411b00506
Device type:          disk
Local Time is:        Thu Jan 27 16:34:40 2022 CST
SMART support is:     Unavailable - device lacks SMART capability.

=========/dev/sdb=======
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-3.10.0-1160.49.1.el7.x86_64] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Vendor:               AVAGO
Product:              MR9361-8i
Revision:             4.68
Compliance:           SPC-3
User Capacity:        479,559,942,144 bytes [479 GB]
Logical block size:   512 bytes
Physical block size:  4096 bytes
Logical Unit id:      0x600605b0110407b02957eacba6c8d581
Serial number:        0081d5c8a6cbea5729b0070411b00506
Device type:          disk
Local Time is:        Thu Jan 27 16:34:40 2022 CST
SMART support is:     Unavailable - device lacks SMART capability.

=========/dev/sdc=======

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/833736.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号