shell做统计发邮件
Posted RingBell
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell做统计发邮件相关的知识,希望对你有一定的参考价值。
实现的功能
1.连接数据库
2.执行SQL
3.结果发邮件
4.使用crontab定时执行
使用到的shell命令
1.date
本次用到的是date的格式,并从当前时间的前一天
#当前时间输出格式2019-12-12 12:12:12
date "+%Y-%m-%d %H:%M:%S"
#当前时间前一天时间
date -d ‘-1days‘+"%Y-%m-%d %H:%M:%S"
2.mysql
3.sendmail
4.cat /etc/shells
查看系统中所有可用的shell,选择你使用可以使用的shell。修改对应的声明。
5.shell的单引号、双引号、反引号
代码
#!/bin/bash
source /etc/profile
#now_time=$(date "+%Y-%m-%d %H:%M:%S")
start_time=$(date -d ‘-1days‘ +"%Y-%m-%d %H:%M:%S")
HOST="127.0.0.1"
USER="test"
PASS="123456"
PORT="3306"
email_title="统计"
receivers="test@126.com"
mysql -h$HOST -u$USER -P$PORT -p$PASS <<EOF | sed ‘s# #</td><td>#g‘ | (echo -e "To: $receivers
Subject: $email_title
Content-Type: text/html
<table border=‘1‘>";sed ‘s#^(.*)$#<tr><td>1</td></tr>#‘;echo "</table>") | sed ‘s#.*begin_table.*#<br/><table border="1">#‘ | sed ‘s#.*end_table.*#</table>#‘ | sendmail -t
use db_test;
select * from user where create_time>=‘$start_time‘
EOF
以上是关于shell做统计发邮件的主要内容,如果未能解决你的问题,请参考以下文章
Mac下命令行发邮件搭配php(shell_exec...)等脚本语言,轻松发邮件,告别各种依赖库
linux 求助shell脚本 ping命令延迟超过100ms的包就发邮件 恢复正常也发个邮件 之后不用发