笺注:这是在 CentOS6.9编译安装Zabbix4.4.5 的基础上进行的。
Python的版本信息:
[root@Zabbix_server_01 ~]# python3 --version
Python 3.6.8
查看Apache的进程信息:
[root@Zabbix_server_01 ~]# ps -ef |grep httpd |grep -v grep
root 1951 1 0 03:39 ? 00:00:00 /usr/local/apache/bin/httpd -k start
www 1981 1951 0 03:39 ? 00:00:00 /usr/local/apache/bin/httpd -k start
www 1982 1951 0 03:39 ? 00:00:00 /usr/local/apache/bin/httpd -k start
www 1983 1951 0 03:39 ? 00:00:00 /usr/local/apache/bin/httpd -k start
www 1984 1951 0 03:39 ? 00:00:00 /usr/local/apache/bin/httpd -k start
www 1985 1951 0 03:39 ? 00:00:00 /usr/local/apache/bin/httpd -k start
[root@Zabbix_server_01 ~]#
查看MySQL的进程信息:(关键字“mysql”可以使用单引号或双引号,也可以不用)
[root@Zabbix_server_01 ~]# ps -ef |grep mysql |grep -v grep
root 1419 1 0 03:39 ? 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/var --pid-file=/usr/local/mysql/var/Zabbix_server_01.pid
mysql 1903 1419 2 03:39 ? 00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/var/Zabbix_server_01.err --open-files-limit=65535 --pid-file=/usr/local/mysql/var/Zabbix_server_01.pid --socket=/tmp/mysql.sock --port=3306
[root@Zabbix_server_01 ~]#
[root@Zabbix_server_01 ~]# ps -ef |grep 'mysql' |grep -v grep
root 1419 1 0 03:39 ? 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/var --pid-file=/usr/local/mysql/var/Zabbix_server_01.pid
mysql 1903 1419 2 03:39 ? 00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/var/Zabbix_server_01.err --open-files-limit=65535 --pid-file=/usr/local/mysql/var/Zabbix_server_01.pid --socket=/tmp/mysql.sock --port=3306
[root@Zabbix_server_01 ~]#
[root@Zabbix_server_01 ~]# ps -ef |grep "mysql" |grep -v grep
root 1419 1 0 03:39 ? 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/var --pid-file=/usr/local/mysql/var/Zabbix_server_01.pid
mysql 1903 1419 2 03:39 ? 00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/var/Zabbix_server_01.err --open-files-limit=65535 --pid-file=/usr/local/mysql/var/Zabbix_server_01.pid --socket=/tmp/mysql.sock --port=3306
[root@Zabbix_server_01 ~]#
######
检测Apache、MySQL服务是否在运行中的脚本:
[root@Zabbix_server_01 ~]# cat xx.py
#coding=utf-8
import os
process_1 = len(os.popen("ps -ef |grep httpd |grep -v grep").readlines())
print(process_1)
if process_1 >= 1:
print('Apache is working.')
else:
print('Apache is down.')
print("-" * 10)
process_2 = len(os.popen("ps -ef |grep 'mysql' |grep -v grep").readlines())
print(process_2)
if process_2 >= 1:
print('MySQL is working.')
else:
print('MySQL is down.')
设置脚本权限:
[root@Zabbix_server_01 ~]# chmod a+x xx.py
运行脚本的效果:(Apache、MySQL服务都正在运行时)
[root@Zabbix_server_01 ~]# python3 xx.py
6
Apache is working.
----------
2
MySQL is working.
[root@Zabbix_server_01 ~]#
运行脚本的效果:(Apache、MySQL服务都没有运行时)
[root@Zabbix_server_01 ~]# python3 xx.py
0
Apache is down.
----------
0
MySQL is down.
[root@Zabbix_server_01 ~]#
######
关闭Apache、MySQL服务的脚本:
[root@Zabbix_server_01 ~]# cat yy.py
#coding=utf-8
import os
command_1 = 'killall -9 httpd' #杀死Apache的进程,等于关闭Apache服务
command_2 = 'service mysql stop'
os.system(command_1)
os.system(command_2)
设置脚本权限:
[root@Zabbix_server_01 ~]# chmod a+x yy.py
运行脚本的效果:(Apache、MySQL服务都关闭成功)
[root@Zabbix_server_01 ~]# python3 yy.py
Shutting down MySQL.... SUCCESS!
[root@Zabbix_server_01 ~]#
######
启动Apache、MySQL服务的脚本:
[root@Zabbix_server_01 ~]# cat zz.py
#coding=utf-8
import os
command_1 = 'service httpd start'
command_2 = 'service mysql start'
os.system(command_1)
os.system(command_2)
设置脚本权限:
[root@Zabbix_server_01 ~]# chmod a+x zz.py
运行脚本的效果:(Apache、MySQL服务都启动成功)
[root@Zabbix_server_01 ~]# python3 zz.py
start apache... done
Starting MySQL.. SUCCESS!
[root@Zabbix_server_01 ~]#
######
重启Apache、MySQL服务的脚本:
[root@Zabbix_server_01 ~]# cat rr.py
#coding=utf-8
import os
command_1 = 'service httpd restart'
command_2 = 'service mysql restart'
os.system(command_1)
os.system(command_2)
设置脚本权限:
[root@Zabbix_server_01 ~]# chmod a+x rr.py
运行脚本的效果:(Apache、MySQL服务都重启成功)
[root@Zabbix_server_01 ~]# python3 rr.py
restart apache... done
Shutting down MySQL... SUCCESS!
Starting MySQL.. SUCCESS!
[root@Zabbix_server_01 ~]#
######
检测Apache、MySQL服务是否在运行中的脚本:(使用函数)
[root@Zabbix_server_01 ~]# cat han.py
#coding=utf-8
import os
def func1(Key_1,String_1):
process_1 = len(os.popen(String_1).readlines())
if process_1 >= 1:
print(f"{Key_1} is working.")
else:
print(f"{Key_1} is down.")
if __name__ == '__main__':
Key_1 = "Apache"
String_1 = "ps -ef |grep httpd |grep -v grep"
func1(Key_1,String_1)
print("-" * 10)
Key_1 = "MySQL"
String_1 = "ps -ef |grep mysql |grep -v grep"
func1(Key_1,String_1)
设置脚本权限:
[root@Zabbix_server_01 ~]# chmod a+x han.py
[root@Zabbix_server_01 ~]# pgrep -l http
3762 httpd
3768 httpd
3769 httpd
3771 httpd
3772 httpd
3773 httpd
[root@Zabbix_server_01 ~]#
[root@Zabbix_server_01 ~]# pgrep -l mysql
3784 mysqld_safe
4268 mysqld
[root@Zabbix_server_01 ~]#
[root@Zabbix_server_01 ~]# service httpd stop
stop apache... done
[root@Zabbix_server_01 ~]#
[root@Zabbix_server_01 ~]# pgrep -l http
[root@Zabbix_server_01 ~]#
运行脚本的效果:
[root@Zabbix_server_01 ~]# python3 han.py
Apache is down.
----------
MySQL is working.
[root@Zabbix_server_01 ~]#
######
检测Apache、MySQL服务是否在运行中的脚本:(使用类)
[root@Zabbix_server_01 ~]# cat lei.py
#coding=utf-8
import os
class class1():
def __init__(self,Key_1,String_1):
self.Key_1 = Key_1
self.String_1 = String_1
def func1(self):
process_1 = len(os.popen(self.String_1).readlines())
if process_1 >= 1:
print(f"{self.Key_1} is working.")
else:
print(f"{self.Key_1} is down.")
if __name__ == '__main__':
Key_1 = "Apache"
String_1 = "ps -ef |grep httpd |grep -v grep"
myclass = class1(Key_1,String_1)
myclass.func1()
print("-" * 10)
Key_1 = "MySQL"
String_1 = "ps -ef |grep mysql |grep -v grep"
myclass = class1(Key_1,String_1)
myclass.func1()
设置脚本权限:
[root@Zabbix_server_01 ~]# chmod a+x lei.py
[root@Zabbix_server_01 ~]# pgrep -l http
4427 httpd
4428 httpd
4429 httpd
4430 httpd
4431 httpd
4432 httpd
[root@Zabbix_server_01 ~]# pgrep -l mysql
3784 mysqld_safe
4268 mysqld
[root@Zabbix_server_01 ~]#
[root@Zabbix_server_01 ~]# service mysql stop
Shutting down MySQL.... SUCCESS!
[root@Zabbix_server_01 ~]#
[root@Zabbix_server_01 ~]# pgrep -l mysql
[root@Zabbix_server_01 ~]#
运行脚本的效果:
[root@Zabbix_server_01 ~]# python3 lei.py
Apache is working.
----------
MySQL is down.
[root@Zabbix_server_01 ~]#
######
把Apache、MySQL服务的进程信息写入日志文件:
[root@Zabbix_server_01 ~]# cat /scripts/qq.py
#coding=utf-8
import os
command_a1 = "Check_time=`date +'%Y%m%d_%H%M%S'` && echo -e '\n检测时间:' $Check_time >> /root/1.log" # \n 换行符
command_a2 = "ps -ef |grep httpd |grep -v grep >> /root/1.log" # >> 把输出结果写入(追加)到文件;假如文件不存在会自动创建
os.system(command_a1)
os.system(command_a2)
command_b1 = "Check_time=`date +'%Y%m%d_%H%M%S'` && echo -e '\n检测时间:' $Check_time >> /root/2.log"
command_b2 = "ps -ef |grep mysql |grep -v grep >> /root/2.log"
os.system(command_b1)
os.system(command_b2)
设置脚本权限:
[root@Zabbix_server_01 ~]# chmod a+x /scripts/qq.py
开机自动运行脚本“qq.py ”:
[root@Zabbix_server_01 ~]# which python3
/usr/local/bin/python3
[root@Zabbix_server_01 ~]# echo 'cd /scripts && /usr/local/bin/python3 qq.py ' >> /etc/rc.local
[root@Zabbix_server_01 ~]# cat !$
cat /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
/usr/local/zabbix/sbin/zabbix_agentd
/usr/local/zabbix/sbin/zabbix_server
cd /scripts && /usr/local/bin/python3 qq.py
[root@Zabbix_server_01 ~]#
重启服务器:
[root@Zabbix_server_01 ~]# init 6
[root@Zabbix_server_01 ~]#
服务器重启后,查看日志文件:(实验中,服务器重启了两次)
[root@Zabbix_server_01 ~]# cat 1.log
检测时间: 20190204_035109
root 1928 1 0 03:51 ? 00:00:00 /usr/local/apache/bin/httpd -k start
www 1938 1928 0 03:51 ? 00:00:00 /usr/local/apache/bin/httpd -k start
www 1939 1928 0 03:51 ? 00:00:00 /usr/local/apache/bin/httpd -k start
www 1940 1928 0 03:51 ? 00:00:00 /usr/local/apache/bin/httpd -k start
www 1941 1928 0 03:51 ? 00:00:00 /usr/local/apache/bin/httpd -k start
www 1942 1928 0 03:51 ? 00:00:00 /usr/local/apache/bin/httpd -k start
检测时间: 20190204_035305
root 1915 1 0 03:53 ? 00:00:00 /usr/local/apache/bin/httpd -k start
www 1925 1915 0 03:53 ? 00:00:00 /usr/local/apache/bin/httpd -k start
www 1926 1915 0 03:53 ? 00:00:00 /usr/local/apache/bin/httpd -k start
www 1927 1915 0 03:53 ? 00:00:00 /usr/local/apache/bin/httpd -k start
www 1928 1915 0 03:53 ? 00:00:00 /usr/local/apache/bin/httpd -k start
www 1929 1915 0 03:53 ? 00:00:00 /usr/local/apache/bin/httpd -k start
[root@Zabbix_server_01 ~]#
[root@Zabbix_server_01 ~]# cat 2.log
检测时间: 20190204_035109
root 1417 1 0 03:51 ? 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/var --pid-file=/usr/local/mysql/var/Zabbix_server_01.pid
mysql 1901 1417 7 03:51 ? 00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/var/Zabbix_server_01.err --open-files-limit=65535 --pid-file=/usr/local/mysql/var/Zabbix_server_01.pid --socket=/tmp/mysql.sock --port=3306
检测时间: 20190204_035305
root 1404 1 0 03:53 ? 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/var --pid-file=/usr/local/mysql/var/Zabbix_server_01.pid
mysql 1888 1404 6 03:53 ? 00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/var/Zabbix_server_01.err --open-files-limit=65535 --pid-file=/usr/local/mysql/var/Zabbix_server_01.pid --socket=/tmp/mysql.sock --port=3306
[root@Zabbix_server_01 ~]#
相关文章:
自定义类
Python3调用Linux命令
Python3管理Windows的软件进程 |