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=""


mysql -h$HOST -u$USER -P$PORT -p$PASS <<EOF | sed ‘s#\t#</td><td>#g‘ | (echo -e "To: $receivers\nSubject: $email_title\nContent-Type: text/html\n\n<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

相关推荐