我有一个bash脚本,可以定期检查某个ruby脚本是否已启动。 ruby脚本必须全天候运行。如果不是,则bash脚本必须发送电子邮件。
我对如何确保红宝石总是向上的愿景。那么通过gmail从bash发送电子邮件的最简单方法是什么?
或者是否有更好的方式通知管理员有问题?
答案 0 :(得分:0)
这是我在我的一个Raspberry PI上的解决方案。它使用我的Gmail帐户发送电子邮件。我确实使用" SSMTP"作为MTA和" mailx"作为组成电子邮件的命令行工具。 mailx通过cron激活。
配置非常简单。这些是/etc/ssmtp/ssmtp.cnf
中我的SSMTP配置的相关部分:
# The person who gets all mail for userids < 1000
root=xyz@gmail.com
# The place where the mail goes
mailhub=smtp.gmail.com:587
# The full hostname (FQDN of the Linux box used to send emails)
hostname=planck.xyz.it
# Gmail account username & passed:
AuthUser=xyz@gmail.com
AuthPass=xyz
# Other config params:
UseTLS=YES
UseSTARTTLS=YES
FromLineOverride=YES
我在启动时自动启动了SSMTP。
然后,您可以从命令行发送电子邮件。我每晚都会收到Raspberry Pi的统计数据。这是我的crontab条目:
00 03 * * * /usr/local/bin/xyz.sh | mailx -s "xyz xyz at $(date)" xyz.xyz@xyz.com
您当然可以 - 通过mailx发送电子邮件到任何有效的电子邮件地址
答案 1 :(得分:0)
那么通过gmail从bash发送电子邮件的最简单方法是什么?
我将/dev/null
重定向到mutt
,使其无需用户界面即可发送电子邮件CLI。
我在 .bashrc 中保留以下功能:
# Usage: em <list-of-contacts> <mutt-options>
em () {
local contacts=()
while [[ -n $1 && $1 != -* ]]; do
contacts+=("$1")
shift
done
mutt "$@" -- "${contacts[@]}" < /dev/null
}
在 .mutt-alias 中,我保留了一个联系人及其电子邮件列表,这样我就可以通过执行以下操作方便地发送电子邮件:
em daniel david -s 'Hello Daniel and David' -a /home/rany/Books/K_and_R.pdf
将向Daniel和David发送电子邮件,主题为 Hello Daniel和David 以及附件 /home/rany/Books/K_and_R.pdf 。
我有时想写一个非常短的电子邮件正文,所以我执行以下Bash命令:
em daniel david -s 'Hi guys' -i <(printf '%s\n' "Check out this too!")
在为管理员撰写和发送简短通知时,这可能对您有所帮助。
如果您碰巧像我一样运行Archlinux,请参阅Mutt Installation,了解如何使用IMAP,POP3,Maildir和SMTP配置设置Mutt。