目录

一、目的所在

二、实例

2.1、需求

2.2、通过Shell实现

2.3、通过Python实现

2.4、扩展

Shell

Python

主要区别:

实现功能:

跨平台性:


一、目的所在

通过简单的例子去找出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_redecho -e "CPU物理数:${g}${cpu_number}${e}\nCPU内核数:${g}${cpu_core}${e}\nCPU型号:${g}${cpu_info}${e}"if [[ ${cpu_core} == ${cpu_processor} ]];thenecho -e "超线程:${g}支持${e}"elseecho -e "超线程:${g}不支持${e}"fi
}
print_mem(){mem_redd="当前主机内存信息 总内存:${g}${total}MB${e} 当前已用:${g}${used}MB${e} 当前可用:${g}${free}MB${e} 共享占用:${g}${shared}MB${e} 缓存占用:${g}${cache}MB${e}"for i in $d;doprin "$i"done
}
print_cpu
print_mem

执行结果如下:

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

执行结果如下:

2.4、扩展

下面附上Windows端的执行结果

Shell

Python

主要区别:

实现功能:

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

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

跨平台性:

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

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

Linux运维对比:Shell运维 VS Python运维相关推荐

  1. 2018 Python零基础大神运维自动化就业教程最新版Python运维就业 1-5部分

    本文为博主整理文章 下载地址:http://www.yixueit.com/forum.php?mod=viewthread&tid=1312&extra=page%3D1&_ ...

  2. python程序员需要掌握哪些技术-python运维要掌握哪些内容

    python运维需要会什么 随着移动互联网的普及,服务器运维所面临的挑战也随之越来越大.当规模增长到一定程度,手动管理方式已经无法应对,自动化运维成为解决问题的银弹. Python凭借其灵活性,在自动 ...

  3. python 多维数组去重_python多维数组运算-女性时尚流行美容健康娱乐mv-ida网

    自动秒收录 如何加入 (当前页) 购买本站源码 自媒体交流 查询是否收录 查询收录 × 快速加入 只要做上本站的友情链接,并在您站上点击一次,就免人工自动收录!并自动排在本站第一位. 本站已收录286 ...

  4. 第13章代码《跟老男孩学习Linux运维:Shell编程实战》

    本书历史上已出版最实战的Shell高级编程实战书籍,没有之一,和市面书籍不同,本书是作者经过18年的运维工作及教学工作后,创新类企业级实战书籍,适合所有学习及从事Linux相关工作的读者. <跟 ...

  5. Linux云计算运维之Shell

    Linux云计算运维之Shell find 搜索文件名是完全匹配 grep 搜索文件名中的字符串,包含匹配 echo "字符串" : 把字符串输出到控制台 变量分类 : set [ ...

  6. linux运维自动化脚本,linux运维自动化shell脚本小工具

    linux运维shell 脚本小工具,如要分享此文章,请注明文章出处,以下脚本仅供参考,若放置在服务器上出错,后果请自负 1.检测cpu剩余百分比 #!/bin/bash #Inspect CPU # ...

  7. python运维开发常用模块(四)文件对比模块difflib

    1.difflib介绍 difflib作为 Python的标准库模块,无需安装,作用是对比文本之间的差异,且支持 输出可读性比较强的HTML文档,与Linux下的diff命令相似.我们可以 使用dif ...

  8. python运维看什么书_学习Python在Linux运维上的应用应该看哪些书 什么样的学习路线...

    匿名用户 1级 2017-08-02 回答 Python岗位有哪些呢?主要的岗位有这些: Python全栈开发工程师(10k-20K) Python运维开发工程师(15k-20K) Python高级开 ...

  9. 运维学shell还是python_运维DBA要不要学python

    运维DBA要不要学python 我个人认为是:要 现在 python 在运维 数据库 的工作中主要用在 1.编写一些运维脚本 2.编写运维管理平台 3.研究互联网大厂的运维脚本/工具并应有 特别是运维 ...

  10. 如何做好Linux服务器运维,你可能需要这一份运维工程师书单!

    ​ 运维,这里指互联网运维,通常属于技术部门,与研发.测试.系统管理同为互联网产 品技术支撑的4大部门,这个划分在国内和国外以及大小公司间都会多少有一些不同. 一个互联网产品的生成一般经历的过程是:产 ...

最新文章

  1. 如何在 Shell 脚本中执行语法检查调试模式
  2. linux AIO (异步IO) 那点事儿
  3. 《全民捕鱼》游戏分析
  4. Android 开发中使用Intent传递数据的方法
  5. freeswitch源码编译windows_【Thrift】Windows编译Thrift源码及其依赖库
  6. php获取上传文件路径 fakepath,JavaScript_js获取上传文件的绝对路径实现方法,在html中input type=file - phpStudy...
  7. git 历史操作日志_Git - 查看提交历史
  8. hdu4825 字典树 XOR
  9. java考勤表导出_考勤表如何导出?
  10. 免费分享9本经典的MySQL书籍。
  11. itunes未能连接到iphone软件更新服务器,iTunes无法联系iphone软件更新服务器 不可连接解决方法...
  12. 语音合成第一篇-入门
  13. 数据结构课程设计(八)---家谱管理系统(十几个功能)
  14. ACM--South Pacific 2012
  15. 搭建个人深度学习工作站
  16. Google Chrome 背后的天才:不在美国工作的Google员工
  17. 向服务器写入文件失败,向远程服务器写入文件
  18. html销售网制作,互联网在线销售系统的制作方法
  19. 使用Java编写自己的区块链
  20. 【精解】EOS智能合约演练

热门文章

  1. 犀牛建立html格式,初学犀牛建模思路养成
  2. win10系统用什么测试软件,Win10系统如何测试软件兼容性?
  3. leetcode1728. 猫和老鼠 II(分析三——算法部分2)
  4. 理论考试的一些记忆技巧
  5. 软件工程导论第3章习题答案
  6. 电牛上位机 电牛一号、二号,鹏辉电池、天劲电池等车型
  7. c语言概率产生字母,智邮普创c语言面试题 ---- 字母概率(示例代码)
  8. 选购机械硬盘 威健非威健有什么区别吗
  9. Java开发者职业生涯要看的200+本书
  10. 使用Markdown追溯产品文档历史版本