当前位置:主页 > python教程 > Python检查 云备份进程是否正常运行代码实例

Python检查云备份进程是否正常的监控代码

发布:2019-11-16 17:09:14 158


我们帮大家精选了相关的编程文章,网友杨乐欣根据主题投稿了本篇教程内容,涉及到python、检查、云备份进程、正常运行、Python检查 云备份进程是否正常运行代码实例相关内容,已被693网友关注,相关难点技巧可以阅读下方的电子资料。

Python检查 云备份进程是否正常运行代码实例

这篇文章主要介绍了Python检查 云备份进程是否正常运行代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

场景:服务器自动备份数据库文件,每两小时生成一个新备份文件,通过云备份客户端自动上传,需要每天检查是否备份成功。

实现:本脚本实现检查文件是否备份成功,进程是否正常运行,并且发送相关邮件提醒。

#! /usr/bin/env python
import os
import time
import smtplib
from email.mime.text import MIMEText
from email.header import Header 
from configparser import ConfigParser 
def SendMail(server,sender,pwd,receiver,msg):
  '''
  Conncet to Office365 mail server and sent emails
   
  '''
  email = smtplib.SMTP(server,587)
  email.starttls()
  email.ehlo(server)
  email.login(sender,pwd)
  email.sendmail(sender,receiver,msg)
  email.quit()     
def GetNewFiles(path,num):
  '''
  Get file lists and return the last num created files   
  '''
  lists = os.listdir(path)
  lists.sort(key=lambda fn:os.path.getctime(path+'\\'+fn))   
  return lists[-num : ]   
def CheckProcess(name):
  '''
  Check if the process exits and return result.
   
  ['\n', 'Image Name           PID Session Name    Session#  Mem Usage\n', '========================= ======== ================ =========== ============\n', 'Dropbox.exe         20484 Console          1   71,652 K\n', 'Dropbox.exe         23232 Console          1   2,456 K\n', 'Dropbox.exe         61120 Console          1   2,168 K\n']
  
  '''
  proc = []
  p = os.popen('tasklist /FI "IMAGENAME eq %s"' % name)
  for x in p:
    proc.append(x)
  p.close()
  return proc
   
def MailContent(path,num):
  '''
  make the mail contents
  '''
  content = []
   
  dropbox = CheckProcess('dropbox.exe')
  carboniteservice = CheckProcess('carboniteservice.exe')
   
  #IF process doesn't run
  if len(dropbox) < 2 or len(carboniteservice) < 2 :
    content.append("Dropbox or CarBonite doesn't run")
    s = '\n\t'.join(dropbox) + '\n\n' + '\n\t'.join(carboniteservice)
    content.append("Process Check Result:\n\t" + s)
    return content
   
  #Check if the backup files are correct.
  files = GetNewFiles(path,num)
  file_ctime = os.path.getctime(path + '\\' + files[0])
  now = time.time() - 86400
   
  if file_ctime > now :
    content.append("DB Backup Successfull")
    body = "\nThe Backup files are:\n\t" + '\n\t'.join(files)
    content.append(body)
    return content
  else :
    content.append("DB Backup Failed")
    body = "\nThe last backup sucessfull file is " + files[-1]
    content.append(body)
    return content  
def main():
   
  #server = 'smtp.office365.com'
  #sender = 'online@netbraintech.com'
  #receiver = ['gavin.yuan@netbraintech.com' , 'feng.liu@netbraintech.com']
  #pwd = 'Netbrain12'
   
  config = ConfigParser()
  config.read_file(open('config.ini'))
  path = config.get('os', 'path')
  receiver = config.get('email', 'receiver')
  server = config.get('email', 'server')
  sender = config.get('email', 'sender')
  pwd = config.get('email', 'pwd')   
  content = MailContent(path,12)
  #content = MailContent("D:\\test",6)
  mail_content = content[1]   
  msg = MIMEText(mail_content, "plain", "utf-8")
  msg["Subject"] = Header(content[0], "utf-8")
  msg["From"] = sender
  msg["To"] = Header(receiver)   
  SendMail(server,sender,pwd,receiver.split(','),msg.as_string()) 
if __name__ == '__main__':
  main()

ini配置文件内容

[os]
path=D:\test
[email]
server=smtp.office365.com
sender=xxxx@outlook.com
pwd=xxxxx
receiver=xx@outlook.com,xxxxx@gmail.com

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。


参考资料

相关文章

  • 基于DataFrame某一列的值来选择具体的某一行方法

    发布:2020-01-19

    今天小编就为大家分享一篇根据DataFrame某一列的值来选择具体的某一行方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧


  • python做游戏开发的知识点总结

    发布:2020-03-30

    可以进行游戏开发。python开发游戏的库(平台)—pygame,pygame是python的一个跨平台模块,专门为设计电子游戏而开发,建立在SDL基础上,允许开发者快速的开发出自己的游戏而又不被低级语言束


  • 多版本python python2和python3共存方法

    发布:2019-08-05

    这篇文章主要为大家详细介绍了python多版本的安装方法,解决python2和python3共存以及pip共存问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • Python读取excel指定列生成指定sql脚本的思路和方法

    发布:2019-06-06

    今天小编就为大家分享一篇Python读取excel指定列生成指定sql脚本的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧


  • 基于Python实现原创程序猿乘风破浪小游戏

    发布:2023-04-08

    最近学习了一丁点Pygame技能,感觉有点上头,一波操作创作“程序猿乘风破浪”游戏一款,文中的示例代码讲解详细,希望大家能够喜欢


  • python使用fcntl模块实现程序加锁的方法

    发布:2020-04-13

    这篇文章主要介绍了python使用fcntl模块实现程序加锁功能,较为详细的分析了fcntl模块的具体功能并结合实例形式给出了Python实现程序加锁的操作技巧,需要的朋友可以参考下


  • Python调用服务接口的实例

    发布:2023-01-05

    给网友们整理关于Python的教程,今天小编就为大家分享一篇Python调用服务接口的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧


  • Python绑定与非绑定知识点总结

    发布:2020-02-25

    这篇文章主要为大家详细介绍了Python绑定方法与非绑定方法的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


网友讨论