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