117.info
人生若只如初见

Python自动化导出zabbix数据并发邮件脚本

import smtplib

from email.mime.multipart import MIMEMultipart

from email.mime.text import MIMEText

from email.mime.base import MIMEBase

from email import encoders

import os

import subprocess

import time

Zabbix参数

zabbix_server = ‘192.168.1.100’

zabbix_user = ‘admin’

zabbix_password = ‘zabbix’

zabbix_export_script = ‘/usr/lib/zabbix/export_zabbix_data.py’

zabbix_export_output = ‘/tmp/zabbix_data.csv’

邮件参数

smtp_server = ‘smtp.example.com’

smtp_port = 587

smtp_username = ‘sender@example.com’

smtp_password = ‘password’

email_from = ‘sender@example.com’

email_to = [‘recipient@example.com’]

email_subject = ‘Zabbix Data Export’

email_body = ‘Please see the attached Zabbix data file.’

导出Zabbix数据

subprocess.call([‘python’, zabbix_export_script, zabbix_server, zabbix_user, zabbix_password, zabbix_export_output])

发送邮件

msg = MIMEMultipart()

msg[‘From’] = email_from

msg[‘To’] = ‘,’.join(email_to)

msg[‘Subject’] = email_subject

msg.attach(MIMEText(email_body, ‘plain’))

attachment = open(zabbix_export_output, ‘rb’)

part = MIMEBase(‘application’, ‘octet-stream’)

part.set_payload((attachment).read())

encoders.encode_base64(part)

part.add_header(‘Content-Disposition’, “attachment; filename= %s” % os.path.basename(zabbix_export_output))

msg.attach(part)

server = smtplib.SMTP(smtp_server, smtp_port)

server.starttls()

server.login(smtp_username, smtp_password)

server.sendmail(email_from, email_to, msg.as_string())

server.quit()

print(“Email sent successfully”)

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe5f1AzsLBgFWAFU.html

推荐文章

  • python去除重复数据的方法是什么

    Python中去除重复数据的方法有多种,下面是其中两种常见的方法: 使用集合(set)去除重复数据:将数据转换为集合类型,集合具有自动去重的特性,然后再转回列表...

  • python中数组和列表有什么区别

    在Python中,数组和列表都是用来存储多个值的数据结构。但是它们在一些方面有一些区别。 数据类型:数组在Python中是由NumPy库提供的,它可以存储相同数据类型的...

  • python如何把list内的元素合并

    要把list内的元素合并,可以使用join()方法。join()方法是将列表中的元素连接成一个字符串。
    下面是一个示例:
    my_list = ['Hello', 'world', 'how', ...

  • python中清空代码的方法有哪些

    在Python中,清空代码的方法有以下几种: 删除变量:通过使用del关键字删除变量,可以释放变量占用的内存空间。例如:del variable_name 清空列表:通过将列表赋...

  • python正则表达式对字符串的查找匹配

    Python的re模块提供了强大的正则表达式操作函数,可以用于对字符串进行查找匹配。
    下面是一个示例代码,演示了如何使用re模块进行字符串的匹配:
    impo...

  • 浅谈Map集合中get不存在的key值,会抛出异常吗

    在Java的Map集合中,如果使用get方法获取一个不存在的key值,不会抛出异常。相反,它会返回null值。
    Map集合是基于键值对的数据结构,每个键都是唯一的。当...

  • JS中prototype的用法实例分析

    在JavaScript中,每个对象都有一个prototype属性,它指向了另一个对象。这个对象被称为原型对象(prototype object),原型对象中包含了一些共享给其他对象的属性...

  • filters.revealTrans.Transition使用方法小结

    filters.revealTrans.Transition使用方法小结: 创建Transition对象:使用var transition = new filters.revealTrans.Transition(element),其中element是要应用...