python自动化运维,当然指的是用python语言调用linux命令的一个过程,本文先以最为简单的方式,给大家展示一下基本的过程

场景:执行python命令,使tomcat服务一直在线

首先,我们需要知道的是,监测tomcat在线的方式有很多,我们以8080端口在线为准,监视tomcat的服务情况

[root@localhost proc]# ss -ntl | grep 8080
LISTEN     0      100         :::8080                    :::* 

访问网址存在

首先,我们需要知道,tomcat挂掉的情况之一是8080端口不在

在此模拟tomcat挂掉的情况

[root@localhost bin]# ./shutdown.sh
Using CATALINA_BASE:   /usr/local/apache-tomcat-8.5.35
Using CATALINA_HOME:   /usr/local/apache-tomcat-8.5.35
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-8.5.35/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/apache-tomcat-8.5.35/bin/bootstrap.jar:/usr/local/apache-tomcat-8.5.35/bin/tomcat-juli.jar
[root@localhost bin]# ss -ntl | grep 8080[root@localhost bin]#

在tomcat挂掉之后,执行“ss -ntl | grep 8080”没有任何端口显示(模拟线上服务挂掉)

此时,我们需要重启tomcat服务

[root@localhost bin]# ./startup.sh
Using CATALINA_BASE:   /usr/local/apache-tomcat-8.5.35
Using CATALINA_HOME:   /usr/local/apache-tomcat-8.5.35
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-8.5.35/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/apache-tomcat-8.5.35/bin/bootstrap.jar:/usr/local/apache-tomcat-8.5.35/bin/tomcat-juli.jar
Tomcat started.
[root@localhost bin]# ss -ntl | grep 8080
LISTEN     0      100         :::8080                    :::* 

执行后,tomcat服务端口在线,tomcat服务重启成功


上面过程就是我们手动维护的tomcat服务器的过程,这个过程虽然简单,但是,基本就是线上环境的会面临的问题,唯一的问题是线上环境可能存在着更多的不确定因素,本文不展开叙述。

那么上述服务从挂掉到启动,实则是一个对8080端口监听的过程分析。

现在我们以python来解决问题。(shell脚本也可以,不过不是本文重点)

需要使用到的命令

[root@localhost bin]# ss -ntl | grep 8080
[root@localhost bin]# ./startup.sh

逻辑:

1:检测8080端口,存在,无任何操作

2:检测8080端口,不存在,执行start.sh命令

python中调用命令的方法是 os.system(‘命令’)

代码如下:

import os    #在python中使用shell命令
result = os.system('ss -ntl | grep 8080')#判断命令是否执行成功,正确返回0
if(result==0):print('服务存在!')
else:print('服务不存在')os.system('/usr/local/apache-tomcat-8.5.35/bin/startup.sh')#在脚本和程序中使用绝对路径能减少很多新手错误
[root@localhost python]# ll
总用量 4
-rw-r--r-- 1 root root 269 5月  13 14:49 tomcat服务监控.py
[root@localhost python]# chmod +x tomcat服务监控.py
[root@localhost python]# ll
总用量 4
-rwxr-xr-x 1 root root 269 5月  13 14:49 tomcat服务监控.py
[root@localhost python]# cat tomcat服务监控.py
import os
result = os.system('ss -ntl | grep 8080')
if(result==0):print('服务存在!')
else:print('服务不存在')os.system('/usr/local/apache-tomcat-8.5.35/bin/startup.sh')#在脚本和程序中使用绝对路径能减少很多新手错误

配置相应的权限


到上面为止,基本上一个python代码过程的分析已经完成

开始测试python代码

情况一:服务在线

[root@localhost python]# ss -ntl | grep 8080
LISTEN     0      100         :::8080                    :::*
[root@localhost python]# python3 tomcat服务监控.py
LISTEN     0      100         :::8080                    :::*
服务存在!

情况二:服务不存在

[root@localhost python]# ss -ntl | grep 8080
[root@localhost python]# python3 tomcat服务监控.py
服务不存在
Using CATALINA_BASE:   /usr/local/apache-tomcat-8.5.35
Using CATALINA_HOME:   /usr/local/apache-tomcat-8.5.35
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-8.5.35/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/apache-tomcat-8.5.35/bin/bootstrap.jar:/usr/local/apache-tomcat-8.5.35/bin/tomcat-juli.jar
Tomcat started.
[root@localhost python]# ss -ntl | grep 8080
LISTEN     0      100         :::8080                    :::* 

python已经成功的重启服务


到此,我们只需要调用python代码就可以重启服务,接下来就是实现一个基本的运维过程(毕竟人为监控显然不符合急速发展的it行业!emmmm....也许,或许....吧,哈哈哈哈!)

将上述python过程加入crontab中实现,每1min调用

[root@localhost ~]# crontab -l
*/1 * * * * /usr/bin/python3 /root/python/tomcat服务监控.py

现在,你已经成功实现了每1min就检查一次tomcat服务过程(也就是说,服务也就挂掉1min就会重启,当然,真正的线上环境情况复杂的多,本文大家可以先了解一下线上生产环境过程)

完!

python中使用linux命令相关推荐

  1. python中执行linux命令(调用linux命令)_Python调用Linux bash命令

    import subprocess as sup  # 以下注释很多(为了自己以后不忘), 如果只是想在python中执行Linux命令, 看前5行就够了 # 3.5版本之后官方推荐使用sup.run ...

  2. python中执行linux命令(调用linux命令)_常见Python中调用Linux命令

    有时候我们需要从Python中执行Linux命令,下面就介绍几种方法? 1. os 模块: 1.1 os.system 函数: system方法会创建子进程运行外部程序,方法只返回外部程序的运行结果. ...

  3. 在python中使用linux命令写一个监控脚本

    编写python监控脚本,监控/和/boot分区的使用率,/ 大于60%就告警,在屏幕上输出内容,具体自己定义 /boot分区大于50%就告警 脚本名monitor_partition.py 将磁盘的 ...

  4. linux python脚本返回,在C/python中执行linux命令并得到返回值以及输出

    一般来说,用shell的方便之处在于,能够直接调用linux系统命令,方便的得到结果. 但是shell scprit的约束重重(这里不再讲了).下面说一下在C和python中如何调用linux命令.得 ...

  5. Python中调用Linux命令并获取返回值

    方法一.使用os模块的system方法: os.system(cmd),其返回值是shell指令运行后返回的状态码,int类型,0表示shell指令成功执行,256/512表示未找到,该方法适用于sh ...

  6. Python中调用Linux命令之os.system、os.popen

    一.简介 os.system方法是os模块最基础的方法,其它的方法一般在该方法基础上封装完成. 二.os.system原理 system函数可以将字符串转化成命令在服务器上运行: 其原理是每一条sys ...

  7. python中调用linux命令报错cat: -: Bad file descriptor

    在python脚本中国呢调用linux命令,nohup提交报错 cat: -: Bad file descriptor 但是,结果能正常输出, 没找到原因---

  8. python调用shell命令-在Python中执行shell命令的6种方法,你都知道吗?

    原标题:在Python中执行shell命令的6种方法,你都知道吗? Python经常被称作"胶水语言",因为它能够轻易地操作其他程序,轻易地包装使用其他语言编写的库.今天我们就讲解 ...

  9. python使用教程cmd啥意思-对python中执行DOS命令的3种方法总结

    1. 使用os.system("cmd") 特点是执行的时候程序会打出cmd在Linux上执行的信息. import os os.system("ls") 2. ...

最新文章

  1. 负载均衡续:万亿流量场景下的负载均衡实践
  2. matlab ezplot hold,matlab中的ezplot函数
  3. SAP LSMW 导入Open PO时价格不对问题之对策
  4. python引入自己写的文件_python引入自己写的Py文件
  5. 四川大学计算机科学与技术专业分数线,2015年四川大学计算机科学与技术硕士考研复试分数线是290分...
  6. java 图片旋转 翻转 镜像处理_Java OpenCV实现图像镜像翻转效果
  7. 基于JAVA+Spring+MYSQL的家教管理系统
  8. python保留7天备份文件
  9. 评分卡模型开发(七)--基于逻辑回归的标准评分卡实现
  10. Android性能测试工具Emmagee的基本使用
  11. 上班族时间自由,做什么副业合适?最好是在手机或电脑上的副业?
  12. 数据中心安全域的设计和划分
  13. html 给div设置边框颜色代码,div边框颜色设置
  14. qq邮箱mx服务器,QQ域名邮箱管理系统MX记录是什么?怎么添加设置?
  15. S3C22440 JTAG连接不上
  16. 在MTK7628平台编译Silicon的zigbee Host程序
  17. 明源售楼系统技术解析 销售控制(更名查询与变更查询)
  18. 以运力平台的方式切入自动驾驶会是一条捷径吗?
  19. java对象数组练习,定义数组存储三台汽车对象。汽车的属性有:品牌,价格,颜色。创建三个汽车对象,数据通过键盘输入而来,并把数据存入数组中,打印出每台汽车的信息。
  20. p720自带的磁带机备份aix系统

热门文章

  1. 我的Qt作品(5)使用Qt+Halcon实现模板匹配;支持ROI框选/橡皮擦涂抹功能
  2. 美图商业化2.0:探寻多元增长曲线
  3. 华为设备配置PoE功能
  4. 图像在计算机中通过什么方式表示_图像处理入门
  5. 郑小林——“浙大系”隐私计算产学研创新先锋
  6. 网络直播的发展和视频直播APP系统软件的简单介绍
  7. PPP协议的相关介绍
  8. Vitamio的踩坑+填坑
  9. 一个游戏程序员的学习资料 (zz)
  10. vite hmr热更新