(2018年2月3日 注) python3版を書きました:
ps ax | grep hogehoge | grep -v grep
に”hogehoge”が含まれてるかを確認して無かったらgmailを送信する。
あわせて読みたい:
# coding: utf-8
import commands
import sendGmail
from datetime import datetime
from datetime import timedelta
if __name__ == '__main__':
arg = ""
while len(arg) == 0:
arg = raw_input("input substring of process name: ")
INTERVAL = timedelta(seconds=5)
from_addr = "<FROM_ADDR>@gmail.com"
passwd = "<PASS>"
to_addr = "<TO_ADDR>@gmail.com"
title = arg + " end."
body = ""
previous = datetime.now()
while True:
if datetime.now() - previous > INTERVAL:
result = commands.getoutput("ps ax | grep "+ arg + " | grep -v grep")
previous = datetime.now()
if arg not in result:
msg = sendGmail.create_message(from_addr, to_addr, title, body)
sendGmail.send_via_gmail(from_addr, to_addr, passwd, msg)
break;
sendGmail.pyは以下のページまんまです。
独学Linux | Python スクリプトでGmail経由のメールを送信する方法
# coding: utf-8
import smtplib
from email.MIMEText import MIMEText
from email.Header import Header
from email.Utils import formatdate
def create_message(from_addr, to_addr, subject, body):
msg = MIMEText(body)
msg['Subject'] = subject
msg['From'] = from_addr
msg['To'] = to_addr
msg['Date'] = formatdate()
return msg
def send_via_gmail(from_addr, to_addr, passwd, msg):
s = smtplib.SMTP('smtp.gmail.com', 587)
s.ehlo()
s.starttls()
s.ehlo()
s.login(from_addr, passwd)
s.sendmail(from_addr, [to_addr], msg.as_string())
s.close()
if __name__ == '__main__':
from_addr = "<FROM_ADDR>@gmail.com"
passwd = "<PASS>"
to_addr = "<TO_ADDR>@gmail.com"
title = "title"
body = "hongyaaa"
msg = create_message(from_addr, to_addr, title, body)
send_via_gmail(from_addr, to_addr, passwd, msg)
プロセス監視のツールとかありそうだけどよく分からん…目指せじょうよわ脱却
コメント