将命令后台执行并发送结果电子邮件
项目描述
daemail(发音为“DEE-mayl”,类似于“e-mail”但带D)是一个Python脚本,基于 python-daemon 构建,用于在后台运行通常在前景运行的命令,并在完成后通过电子邮件发送其输出(默认情况下为组合的stdout和stderr)。
安装
daemail 需要 Python 3.6 或更高版本。只需使用 Python 3 的 pip 来安装 daemail 及其依赖项
python3 -m pip install daemail
用法
daemail [<options>] <command> [<arg> ...]
daemail 在后台以给定的参数运行 command,一旦命令执行完成,就会发送一封电子邮件。电子邮件的发送由 outgoing 库执行,因此在使用 daemail 之前,必须创建一个包含发送电子邮件设置的 outgoing 配置文件。
选项
- -c FILE, --config FILE
从 FILE 读取 outgoing 库的发送配置;默认为 outgoing 的默认配置文件
- -C DIR, --chdir DIR
在成为守护进程后但在运行命令之前切换到 DIR;默认为当前目录
- -D MBOX, --dead-letter MBOX
如果在尝试发送时发生错误,将电子邮件(包括错误描述)附加到文件 MBOX;默认为 dead.letter。如果文件已存在,则它必须是一个有效的 mbox 文件。
- -e ENCODING, --encoding ENCODING
期望命令的 stdout(如果 --split 不可用,则包括 stderr)以给定的编码;默认为 Python 的 locale.getpreferredencoding 返回的首选编码。如果解码失败,输出将被附加到电子邮件作为名为“stdout”的 application/octet-stream 文件。
当也给出 --mime-type 或 --stdout-filename 时,此选项除了设置 --stderr-encoding 的默认值外没有其他效果。
- -E ENCODING, --stderr-encoding ENCODING
期望命令的 stderr 以给定的编码;默认为通过 --encoding 或其默认值指定的值。如果解码失败,stderr 输出将被附加到电子邮件作为名为“stderr”的 application/octet-stream 文件。
此选项仅在给出 --split 时才有效,无论是隐式还是显式。
- --foreground, --fg
在后台而不是作为守护进程运行所有内容。注意,命令输出将被捕获而不是显示。
- -f ADDRESS, --from ADDRESS, --from-addr ADDRESS
设置电子邮件的 From: 地址。地址可以是“address@example.com”或“Real Name <address@example.com>”的形式。如果没有指定,daemail 将不会设置 From: 报头,并期望邮件命令或 SMTP 服务器来设置它。
- -F, --failure-only
只有当命令运行失败或以非零状态退出时才发送电子邮件
- -l LOGFILE, --logfile LOGFILE
如果守护进程化后发生意外且无法处理的致命错误,将报告追加到 LOGFILE;默认为 daemail.log
此类错误是程序缺陷;请报告它!
- -M MIME-TYPE,--mime-type MIME-TYPE,--mime MIME-TYPE
将命令的标准输出附加到电子邮件中,作为具有指定MIME类型的内联附件。MIME类型可以包含参数,例如:--mime-type "text/html; charset=utf-16"。如果不提供--stdout-filename,则附件命名为“stdout”。暗示--split。
- -n,--nonempty
如果命令成功退出且命令的stdout和stderr均为空或未捕获,则不发送电子邮件
- --no-stdout
不捕获命令的stdout;暗示--split
- --no-stderr
不捕获命令的stderr;暗示--split
- -S,--split
分别捕获命令的stdout和stderr,而不是作为一个单一的数据流
- --stdout-filename FILENAME
将命令的标准输出附加到电子邮件中,作为具有给定文件名的内联附件。如果不提供--mime-type,则附件的MIME类型从文件扩展名推断,对于未知扩展名则回退到application/octet-stream。暗示--split。
- -t ADDRESS,--to ADDRESS,--to-addr ADDRESS
设置电子邮件的收件人。地址可以是“address@example.com”或“Real Name <address@example.com>”的形式。
此选项是必需的。为了指定多个收件人,可以多次给出。
- -Z,--utc
以UTC时间显示开始和结束时间,而不是本地时间
注意事项
输入不能被管道传递到命令中,因为当守护进程化时标准输入被关闭。如果您确实需要通过标准输入传递数据,请运行shell,例如。
daemail bash -c 'command < file'
或
daemail bash -c 'command | other-command'
项目详情
下载文件
为您的平台下载文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
构建分布
daemail-0.7.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 517035ea7175e5adc0dd4e1310c43deda9de9b989ad67b0142adc18607c94632 |
|
MD5 | 349da9cbe6723a58c2080f604a22fac2 |
|
BLAKE2b-256 | 330219077191fa55da36644f455a32bca29ee654bffc61f2d32c0f0e1a8d0296 |
daemail-0.7.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 82c0526b0d4e7e85001569008f9e9ac3cf8324692ef0c6f1ad6e1c4a457b7c38 |
|
MD5 | 98fefcf338c0b526b46f41dbf4781fb7 |
|
BLAKE2b-256 | 62b713da13869d634d63a3d3222662ca288f21ebdf6e77e4ab9361e1ee543000 |