zoukankan      html  css  js  c++  java
  • Python 实现程序自动调度-邮件提醒

    利用Python 实现在文件目录遍历,依次将当前文件夹下子文件夹中的程序编译并自动运行,每一个子程序运行结束后,发送运行结束的提醒到指定邮箱。

    想实现Python文件的后台运行,命令为:

    nohup python -u myscript.py params1 > nohup.out 2>&1 & 

    其中参数 -u 为使得python不启用缓冲,可以及时将输出信息输出到 nohup.out 文件中。


    python脚本程序自动后台运行后,该脚本调用的程序也会在后台运行,关闭当前终端不会kill程序。
     1 import time 
     2 import os 
     3 import subprocess
     4 import smtplib
     5 from email.mime.text import MIMEText
     6 
     7 
     8 def doSth():
     9     k=0
    10     while k < 30:    
    11         time.sleep(5)
    12         k=k+1
    13     print('wake up')
    14 
    15 def sendEmail(filename):
    16     _user="13956047103@163.com"
    17     _pwd="zxcvbnp"
    18     _to="lhailong@mail.ustc.edu.com"
    19     text="program in "+filename+"is finished!"
    20     msg=MIMEText(text)
    21     msg["Subject"]="program run result"
    22     msg["From"]=_user
    23     msg["To"]=_to
    24 
    25     s=smtplib.SMTP("smtp.163.com",timeout=25)
    26     s.login(_user, _pwd)
    27     s.sendmail(_user, _to, msg.as_string())
    28     s.close()    
    29     
    30 
    31 k=0
    32 cwd=os.getcwd()
    33 for(folderName, subfolders, filenames) in os.walk('.'):
    34     print(k)
    35     k=k+1
    36     print('******************************************')
    37     print('current folder name: '+ folderName)
    38     if subfolders:    
    39         print('subfolder:')
    40         print(subfolders)
    41     if filenames:
    42         print('sub file:')
    43         print(filenames)
    44 
    45     runfile='./r_test.out'
    46     os.chdir(folderName)
    47     try:
    48 #        os.system(folderName+'/make')
    49         myMake=subprocess.Popen('make')
    50         myMake.wait()
    51         runExe=subprocess.Popen(runfile)
    52         runExe.wait()
    53 #        os.system(runfile)
    54         sendEmail(folderName)
    55         doSth()
    56     except:
    57         print('no exe in this file')
    58     print('******************************************')
    59     print('')
    60     os.chdir(cwd)
  • 相关阅读:
    C#使用R.net(RDotNet)混合编程,配置环境时发生错误“This 32-bit process failed to load the library R.dll. Native error message is '句柄无效。'””
    Error in shinyAppDir(x) : No Shiny application exists at the path "~/app"处理方法
    vm拷贝cloudera-scm-agent造成问题
    cloudera目录位置
    centos下安装cdh5
    elasticsearch常用的插件
    elasticsearch 安装
    mongod的主要参数有
    mongodb.conf配置文件详解
    centos 安装 mongo3.0
  • 原文地址:https://www.cnblogs.com/cofludy/p/8435911.html
Copyright © 2011-2022 走看看