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做统计发邮件的主要内容,如果未能解决你的问题,请参考以下文章

Shell 发邮件

Mac下命令行发邮件搭配php(shell_exec...)等脚本语言,轻松发邮件,告别各种依赖库

linux 求助shell脚本 ping命令延迟超过100ms的包就发邮件 恢复正常也发个邮件 之后不用发

利用Laravel自带的Mail类发邮件

php利用crontab执行 5分钟发邮件给用户 (包含每分钟发一次)

Django 密码重置。不发邮件