【问题标题】:Python script to check server status用于检查服务器状态的 Python 脚本
【发布时间】:2016-06-17 09:32:03
【问题描述】:

我想使用 python 检查一些服务状态(如 MySQL、Apache2)。我写了一个简单的脚本。

#!/usr/bin/python
from subprocess import call

command = raw_input('Please enter service name : ')

call(["/etc/init.d/"+command, "status"])

此脚本将请求用户进入服务并在终端上显示其结果,如下所示。

● apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: active (running) since සි 2016-06-17 09:16:10 IST; 5h 43min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 2313 ExecReload=/etc/init.d/apache2 reload (code=exited, status=0/SUCCESS)
  Process: 1560 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/apache2.service
           ├─1941 /usr/sbin/apache2 -k start
           ├─2332 /usr/sbin/apache2 -k start
           ├─2333 /usr/sbin/apache2 -k start
           ├─2334 /usr/sbin/apache2 -k start
           ├─2335 /usr/sbin/apache2 -k start
           └─2336 /usr/sbin/apache2 -k start

我只想为每个服务Active: active (running) 使用这条线并检查它是否正在运行,如果没有,我想问你是否要启动它。

有人可以帮我做这件事吗?提前致谢

【问题讨论】:

  • 你用的是什么python版本?
  • 您好,我正在使用 python 2.6.6

标签: python mysql server


【解决方案1】:

我认为您想要的是捕获输出。大致如下:

status = subprocess.check_output("YOUR COMMAND", shell=True)
if ("Active: active (running)" in status):
    ...

【讨论】:

  • Daydov 他正在使用 python2.6 它还没有 check_output 方法。
猜你喜欢
  • 1970-01-01
  • 2017-03-03
  • 2015-09-12
  • 2013-12-14
  • 1970-01-01
  • 2023-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多