linux 系统调用python脚本发送自定义系统邮件

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import sys
import smtplib
import email.mime.multipart
import email.mime.text

server = ‘smtp.163.com‘
port = ‘25‘

def sendmail(server,port,user,pwd,msg):
    smtp = smtplib.SMTP()
    smtp.connect(server,port)
    smtp.login(user, pwd)
    smtp.sendmail(msg[‘from‘], msg[‘to‘], msg.as_string())
    smtp.quit()
    print(‘邮件发送成功email has send out !‘)

if __name__ == ‘__main__‘:
    msg = email.mime.multipart.MIMEMultipart()
    msg[‘Subject‘] = ‘你是风儿我是沙,缠缠绵绵回我家‘
    msg[‘From‘] = ‘[email protected]‘
    msg[‘To‘] = ‘[email protected]‘
    user = ‘1856565020‘
    pwd = ‘xxx123456‘
    content=‘%s\n%s‘ %(‘\n‘.join(sys.argv[1:4]),‘ ‘.join(sys.argv[4:])) #格式处理,专门针对我们的邮件格式

    txt = email.mime.text.MIMEText(content, _charset=‘utf-8‘)
    msg.attach(txt)

    sendmail(server,port,user,pwd,msg)

以上为邮件脚本其中的登陆密码为客户端授权码

把此代码复制到/usr/bin/mail_test 加个执行权限,让以下的脚本来调用

#!/bin/bash
mem_limit=90 #内存使用超过90%则报警,同上
disk=‘/dev/sda1‘ #需要监控的磁盘名
disk_space_limit=90 #磁盘空间使用超过90%则报警,同上

function monitor_mem(){
    mem_total=`free |awk ‘NR==2{print $2}‘`
    mem_use=`free |awk ‘NR==2{print $3}‘`
    mem_per=`echo "scale=2;$mem_use/$mem_total" |bc -l|cut -d. -f2`
    if [ $mem_per -gt $mem_limit ]
        then
            msg="TIME:$(date +%F_%T)
                 HOSTNAME:$(hostname)
                 IPADDR:$(ifconfig |awk ‘NR==2{print $2}‘)
                 MSG:Memory usage exceeds the limit,current value is ${mem_per}%"
            echo $msg
            /usr/bin/mail_test $msg
    fi
}

function monitor_disk_space(){
    space_use=`df $disk |awk ‘NR==2{print $5}‘|cut -d% -f1`
    if [ $space_use -gt $disk_space_limit ]
        then
            msg="TIME:$(date +%F_%T)
                 HOSTNAME:$(hostname)
                 IPADDR:$(ifconfig |awk ‘NR==2{print $2}‘)
                 MSG:Disk space usage exceeds the limit,current value is ${space_use}%"
            echo $msg
            /usr/bin/mail_test $msg
    fi
}

monitor_mem &>> /tmp/monitor.log
monitor_disk_space &>> /tmp/monitor.log

  

  

时间: 2024-08-23 08:37:45

linux 系统调用python脚本发送自定义系统邮件的相关文章

python脚本发送报警邮件

最近在搞把nagios报警邮箱换到163.sina这种免费邮箱上边,之前用过msmtp搞过也可以发送邮件,现在估计是他们系统都升级了,只能使用TSL加密连接,而msmtp怎么配置都配不通,无奈只能转移战术,正好最近在学习Python,也不知道从哪瞄到过有个email的模块,所以准备试试自己搞个脚本. (新手,无编程基础,希望多多指教) -----2016.1.4 修改---- 前提: 更改nagios/etc/object/command.cfg里发送邮件的command配置,例如我这样: # 

Linux 利器- Python 脚本编程入门(一)

导读 众所周知,系统管理员需要精通一门脚本语言,而且招聘机构列出的职位需求上也会这么写.大多数人会认为 Bash (或者其他的 shell 语言)用起来很方便,但一些强大的语言(比如 Python)会给你带来一些其它的好处. 首先,我们会使用 Python 的命令行工具,还会接触到 Python 的面向对象特性(这篇文章的后半部分会谈到它). 学习 Python 可以助力于你在桌面应用开发及数据科学领域的职业发展. 容易上手,广泛使用,拥有海量“开箱即用”的模块(它是一组包含 Python 语句

python练习--发送html格式邮件且发送附件;

最近需要些一个根据配置自动获取html正文及附件的工具脚本.随业余时间写了这个脚本,同时也是对邮件结构的一个学习:后续还需要继续完善html内容生成的部分 感觉脚本还可以优化,比如可以加入图片部分,pdf等,另外发送邮件用的默认铭文方式.没有采用加密/SSL等其他方式: 另外xml配置部分的提取还可以使用字典来做.这样可以更优一些: 代码: xml配置文件: <?xml version="1.0" encoding="UTF-8"?> <Email

zabbix使用脚本发送外网邮件告警(msmtp + mutt)

1.安装msmtp和mutt 相关软件可自行网上搜索 1.1.msmtp安装 tar  -xf  msmtp-1.6.2.tar.xz              cd  msmtp-1.6.2              ./configure              make  &&  make  install 1.2.mutt安装 yum  -y  install  mutt 2.配置msmtp和mutt 2.1.配置msmtp vim /usr/local/etc/msmtprc 

Zabbix3.2邮件告警python脚本

一.概述及环境要求 1.概述 zabbix监控也起到重要作用,以下是使用python脚本发送告警邮件配置方法.之前使用过sendemail邮件报警但是发现邮件主题为中文时候会出现乱码的问题. 2.环境安装要求 Zabbix软件版本:zabbix3.2.6 操作系统:CentOS release 6.8 (Final) 二.脚本创建及测试 1.查看配置zabbix_server.conf ,找到AlertScriptsPath,查看路径位置,如被注释,将注释打开,把send.py 文件保存到该目录

[Python]linux自定义Python脚本命令

在window下写好的程序配置到Linux上,要实现任意目录下的命令调用. 由于初学Linux,这里从文件传输等最基本的方法入手,记录配置的过程中遇到的各种问题. 连接远端服务器 这里使用putty这个工具,用SSH方法连上远端服务器 传输文件 使用FTP传输,这里用filezilla作为本地服务器,图形化界面,方便快捷 安装文件里引用的python包 wget url 命令联网下载安装包 wget http:/www.^&*&%%& 解压缩(具体可见blog:http://www

Python脚本通过邮件发送zabbix报警图片

Python脚本通过邮件发送zabbix报警图片流程如下: 通过zabbix传递给脚本的message参数,筛选出报警信息的itemid; 通过获取的itemid,在数据库中查找对应的grpahid; 拉取对应graphid的图片并保存; 将报警信息和图片组装成html; 发送邮件. Python脚本如下: #!/usr/bin/python #coding=utf-8 from email.mime.text import MIMEText from email.mime.multipart 

邮件发送Python脚本

#!/usr/bin/env python2 #-*- coding: utf-8 -*- #导入smtplib,sys import smtplib,sys from email.mime.text import MIMEText def send_mail(sub,content): #要发给谁,这里发给1个人 mailto_list=["[email protected]", "[email protected]"] #设置服务器用户名.口令以及邮箱后缀 ma

zabbix系统邮件告警Python脚本

zabbix系统邮件告警配置有很多方式,如系统自带的mail,还有zabbix+msmtp+mutt,但是使用Python脚本应该来说还是一个非常简捷有效的方式.主要有如下步骤: 1.设置zabbix_server.conf文件 AlterScript = /usr/local/zabbix/share/zabbix/alterscript 2.建立告警脚本 cd /usr/local/zabbix/share/zabbix/alterscript/ sudo vim sendEmail.sh