(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)

プロセス監視のツールとかありそうだけどよく分からん…目指せじょうよわ脱却

関連記事

echo spotでスマホを持ってない人とテレビ電話をする方法

MiSTEL BAROCCO MD650Lをbluetooth接続にしてmobilityを爆上げ

MiSTEL BAROCCO MD650Lを持ち運びやすくするマグネット足を作った

MiSTEL BAROCCO MD650Lレビュー: 左右分離型ロープロのメカニカルキーボード

workaround for a Orange PI problem USB WiFi with Armbian cannot be found from network

中華系防水bluetoothイヤホンでちゃんと防水できたのは1社だけだった

コメント

コメントを返信する

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です