linux运维对比python,Linux运维对比:Shell运维 VS Python运维 | 求索阁

本文探讨了Linux运维中Shell与Python在查询CPU超线程和内存使用方面的实例。Shell通过Linux内置工具复杂但灵活,而Python借助第三方库简便但功能有限。Python的跨平台性更强。
摘要由CSDN通过智能技术生成

一、目的所在

通过简单的例子去找出Linux运维中使用shell与使用python的一些不同,分析两者的主要特点

二、实例

2.1、需求

1.查询当前主机是否支持超线程

2. 查询当前内存使用情况

2.2、通过Shell实现

既然是在Linux,那么肯定要先使用Linux自身的工具,实现脚本内容如下:

g='\e[1;32m'

e='\e[0m'

prin(){

echo -e "$1"

}

cpu_red(){

#内核数[即线程]

cpu_processor=`grep processor /proc/cpuinfo | wc -l`

#CPU数量[即多路]

cpu_number=`cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l`

#CPU物理内核

cpu_core=`cat /proc/cpuinfo | grep "cpu cores" | sed -n '1p' | awk '{print $4}'`

#CPU型号

cpu_info=`cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c`

}

mem_red(){

#总内存[单位MB]

total=`free -m | grep -v "Swap" | awk '{print $2}' | sed -n "2p"`

used=`free -m | grep -v "Swap" | sed -n '2p' | awk '{print $3}'`

free=`free -m | grep -v "Swap" | sed -n '2p'| awk '{print $4}'`

shared=`free -m | grep -v "Swap" | sed -n '2p' | awk '{print $5}'`

cache=`free -m | grep -v "Swap" | sed -n '2p' | awk '{print $6}'`

}

print_cpu(){

cpu_red

echo -e "CPU物理数:${g}${cpu_number}${e}\nCPU内核数:${g}${cpu_core}${e}\nCPU型号:${g}${cpu_info}${e}"

if [[ ${cpu_core} == ${cpu_processor} ]];then

echo -e "超线程:${g}支持${e}"

else

echo -e "超线程:${g}不支持${e}"

fi

}

print_mem(){

mem_red

d="当前主机内存信息 总内存:${g}${total}MB${e} 当前已用:${g}${used}MB${e} 当前可用:${g}${free}MB${e} 共享占用:${g}${shared}MB${e} 缓存占用:${g}${cache}MB${e}"

for i in $d;do

prin "$i"

done

}

print_cpu

print_mem

执行结果如下:

wps14.jpg

2.3、通过Python实现

源码如下:

import psutil

def cpu():

info = psutil.cpu_times()

luoji = psutil.cpu_count()

wuli = psutil.cpu_count(logical=False)

if luoji == wuli:

print("主机CPU不支持超线程")

else:

i = int(luoji/2)

if wuli == i:

print("主机CPU支持超线程")

def mem():

mems = psutil.virtual_memory()

print('当前主机总内存:', int(mems.total/1024/1024), 'MB')

print('当前已使用:', int(mems.used/1024/1024), 'MB')

cpu()

mem()

执行结果如下:

wps24.jpg

2.4、扩展

下面附上Windows端的执行结果

Shell

b7d22f0c3529a49030cc7dd37ac1e728.png

Python

wps44.jpg

主要区别:

实现功能:

Shell需要通过相关命令进行特定的筛选,灵活性比较高,但是比较复杂

Python只需要调用别人写好的模块即可实现相关功能,且不需要熟悉Linux命令,但是能够实现的功能相对来说不够灵活,总体就是简单

跨平台性:

Shell可以在任意Linux平台上运行

Python可以在任意平台上运行,所以Python的跨平台性更强

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值