import os,re import smtplib '''config ini''' SMTP_address = 'smtp.gmail.com' SMTP_port = 587 smtp_username = 'yehuimingts@gmail.com' smtp_passwd = '07xcgcvxvsdfwsf' alerts_mail_address = '237852571@qq.com' def _get_disk_message(): diskinfo_parser = re.compile(r"(?P<Use>(/d)+)%") #diskinfo_parser = re.compile(r"(.+?)/s+(.+?)/s+(.+?)/s+(?P<Avail>.+?)/s+(?P<Use>.+?)/s+(?P<path>.+?)/s+") warning_msg = '' dp = os.popen("df -lh") while True: line = dp.readline() if not line: break info = diskinfo_parser.search(line) if(not info): continue #print info.group('Use') if(int(info.group('Use')) > 80): warning_msg += line if(warning_msg): return warning_msg return '' ''' action lib ''' def mailx(send_mail,recive_mail,mail_content): mail_header_format = "From: %s/nTo: %s/nSubject: %s/n/n" % (smtp_username,alerts_mail_address,'Server alerts!!!') mail_content_format = mail_header_format + mail_content handle = smtplib.SMTP(SMTP_address) handle.ehlo() handle.starttls() handle.ehlo() handle.login(smtp_username,smtp_passwd) handle.sendmail(send_mail,recive_mail,mail_content_format) handle.quit() if __name__ == '__main__': mail_content = '' mail_content = mail_content +_get_disk_message() if(mail_content): print mail_content mailx(smtp_username,alerts_mail_address,mail_content)