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="[email protected]"

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

原文地址:https://www.cnblogs.com/ringbell/p/12353357.html

时间: 2024-10-08 13:23:37

shell做统计发邮件的相关文章

shell mutt msmtp 发邮件

cat mail.sh #!/bin/bash #-------------------------------------------------- # Created:2015-05-04 # Author:jimmygong # Mail:[email protected] # Function:shell mutt msmtp # Version:1.0 #-------------------------------------------------- [[ -e /lib/lsb/

用shell本检查日志中是否有错,有错则发邮件

#!/bin/bash#初始化环境变量source .bash_profile#日志名中的固有日期格式f_name=`date +%Y%m%d`#日志的路径及名称log_file=/backup/db/rman/log/rman$f_name-0401.logecho $log_file#统计日志文件行数#line_num=`wc -l $log_file|awk '{print $1}'`#echo $line_num#如果日志文件不存在,则直接发送邮件;否则检查文件中是否有erro和Erro

【Python系列】Python自动发邮件脚本

缘起 这段时间给朋友搞了个群发邮件的脚本,为了防止进入垃圾邮件,做了很多工作,刚搞完,垃圾邮件进入率50%,觉得还不错,如果要将垃圾邮件的进入率再调低,估计就要花钱买主机了,想想也就算了,先发一个月,看看效果再拓展吧. 脚本主要是通过Python写的,调的smtplib库,这些是基础,大家在网上一搜一大堆,今天主要给大家讲解下如何避免进入垃圾邮件系统,以及整个系统搭建时的一些思想.可能刚搞Python不久,有很多可能是错误的写法望大家提出来哈~ 配置 CentOS7.0系统 Python 3.4

shell编程项目【邮件报警系统】

一.自己编写的报警邮件监控系统与专业的监控软件的优缺点 自己编写的监控脚本优点 1.若在一台服务器上拷贝了编写的脚本则这台服务器会自己监控自己,若机器上发生了脚本编写的监控项目相关的错误,则会自己发送报警邮件. 2.这种自己编写的脚本比较小巧占用系统资源较少.功能可以定制化.不用专门抽一台或多台机器做监控的服务端. 3.由于自己编写的脚本若技术能力很强则可以实现监控的自动化,即不用找人每天专门搞监控. 缺点: 1.自己编写的脚本会出现很多bug,并且维护起来的容易程度会根据运维人员的经验有很大关

python使用xlsxwriter模板完成nginx趋势图,并自动发邮件

前言: 来到新公司,领导下发了个需求:每周需要对服务器进行一个巡检,以及分析ngxin趋势,由于公司实际生产环境服务器不是特别多,考虑暂时先用脚本完成该需求. 大致思路:收集数据 -> 写入excel制成图表  -> 发邮件 一.收集nginx数据 主要是对nginx log进行一个分析,统计数据.公司使用系统自带的logrotate切割nginx日志,只保存10天日志,并且压缩起来,使用shell分析出来会出现两个日期,遂:将日志文件拷贝到其他路径,解压,并逐个分析,脚本如下: #!/bin

检测所有磁盘分区使用率和inode使用率,当发现某分区容量或者inode量大于85%时,发邮件通知你

监控磁盘使用率 写一个shell脚本,检测所有磁盘分区使用率和inode使用率并记录到以当天日期为命名的日志文件里,当发现某个分区容量或者inode使用量大于85%时,发邮件通知你自己. 思路:1.就是先df -h 然后过滤出已使用的那一列,然后再想办法过滤出百分比的整数部分,然后和85去比较,同理,inode也是一样的思路. 2.df -h.df -i 记录磁盘分区使用率和inode使用率,date +%F 日志名格式3.取出使用率(第5列)百分比序列,for循环逐一与85比较,大于85则记录

检查备份,失败发邮件报警

受朋友的激励,在这写下写下点东西 背景:用shell做的全备,但是可能存在备份失败的情况,所以检查备份(通过检查备份的方式),如果看到有错误就发邮件报警. 备份代码写的很烂,贴上: #!/bin/sh # DFILE=$1 SOCK=$2 DB_NAME=$3 DB_USER="mysqlbak" DB_PASS="***" BCK_DIR="/var/backup/$DB_NAME" FNAME=`date +%Y%m%d_%H%M%S` HO

利用Laravel自带的Mail类发邮件

由于项目在运行过程中经常用到邮件检测报警的功能,而在之前我都是用shell脚本发送邮件.shell脚本的优点是可以直接处理服务器指令,但是其缺点就是处理数据的能力效率太低,取数据库的许多数据要先把数据写入文件里,然后每行读文件并且分割来取出你想要的数据,相对来说麻烦太多.所以本人就准备直接利用Laravel框架封装好的Mail类直接发邮件,而且php语言相对shell来说数据处理能力简直强太多,所以果断弃坑了. 首先新建一个Laravel项目,在其.env文件里找到MAIL相关值,配好邮件发送账

iOS中打电话、打开网址、发邮件、发短信等

常用小功能 小功能简介 iOS中的很多小功能都是非常简单的,几行代码就搞定了,比如打电话.打开网址.发邮件.发短信等 打电话-方法1 最简单最直接的方式:直接跳到拨号界面 NSURL *url = [NSURL URLWithString:@"tel://10010"]; [[UIApplication sharedApplication] openURL:url]; 缺点 电话打完后,不会自动回到原应用,直接停留在通话记录界面 打电话-方法2 拨号之前会弹框询问用户是否拨号,拨完后能