最近在学校的n电脑上跑数据,很多时候一个run要耗费好几个小时,ssh不知道为什么连一会后会自动断开,跑到一半程序就悲剧了。 在网上找了一会 发现一个神器:nohup, 用法超级简单: nohup comand 这样你的程序会后台运行,并且就算你ssh断开后都能继续跑着。nohup还提供给你一个nohup.log 你程序所有的output都会放在那个log里。
另外一个碰到的问题是,很多时候离开ssh后我都不知道程序跑完没,这里我用python搞了一个小程序:基于smtp发电子邮件。首先我用python的subprocess去跑数据程序,然后当数据程序跑完后发送一个邮件到我的邮箱里,这样我就能差不多“实时”的知道程序运行的情况了。
这是我发送邮件的小函数:
#!/usr/bin/env python
# -*- coding: utf8 -*-
import smtplib
from email.mime.text import MIMEText
server = "smtp.gmail.com:587"
user_account="pythonsmtpalert@gmail.com"
password="密码"
mailto_list=["我的目标邮箱.com"]
def send_mail(to_list,sub,content):
me="python stmp alert " +"<pythonsmtpalert@gmail.com>"
msg = MIMEText(content)
msg['Subject'] = sub
msg['From'] = me
msg['To'] = ";".join(mailto_list)
try:
s = smtplib.SMTP(server)
s.starttls()
s.login(user_account,password)
s.sendmail(me, to_list, msg.as_string())
s.close()
return True
except Exception, e:
print str(e)
return False
if __name__ == '__main__':
if send_mail(mailto_list,"Process accomplished","t你好ake a look the results!"):
print "发送成功"
else:
print "发送失败"
server: 服务器地址 user_account:你的邮箱帐号 password:邮箱密码 mailto_list:目标邮箱 这里你的邮箱要和你服务器地址是一个牌子的,我这里用的是gmail,换别的邮箱的话得用别得邮箱得smtp服务器