现象:产品反馈未收到每周五的VIP邮箱付费统计邮件

1. 这个统计脚本我从未经手过,因此不知道逻辑是什么,也不知道代码在哪里.通过查看邮件源文件中的来源IP,找到了发出邮件所在的服务器,信头中有类似这样的来源IP
X-Originating-IP: [xx.xx.xx.86]

2.登陆服务器后,查看crontab的定时规则,找到定时规则是0 0 * * * /bin/sh /xxx/feeUser.sh.每天都会执行一次feeUser.sh的脚本.通过cron.log可以看到该脚本已经执行过了

3.脚本中的逻辑是,每天判断今天的日志文件是否存在,如果不存在就执行一个php脚本,把该脚本的输出重定向到这个日志文件中.
判断如果是周五,就调用php脚本发送一封通知邮件,邮件的内容是对每天日志文件的wc -l行数统计.

4.今天是周五但是邮件没有发出,说明根本就没有执行到发送邮件的逻辑.在前面的统计今天用户付费情况时就已经断掉了.

5.查看php.ini的配置文件,看到没有开启log_errors,也没有指定error_log的位置,所以没法通过php的日志看到发生了什么错误

6.此脚本是14年左右开始运行的,时间也比较久了.在研究php代码的逻辑后发现,在查询数据库的时候,先查出第一个数据库的某表信息后,循环查询另一个数据库的另一张表,在这个循环的过程中,连接数据库的逻辑放在了循环块里面,猜测可能因为连接过多,被数据库拒绝后读取失败吧.

7.里面还有处逻辑挺有想法,读取第一张表的时候,每次只查询10000条,然后再从新连接数据库new PDO对象,估计也是为了防止执行时间太长连接断掉.
每天php脚本把用户查询出来后,重定向到比如2019-9-20-user.log,周五在统计每天的日志行数发送给产品,这样就可以如果产品需要具体用户时也可以留着这个结果

8.先把连接数据库逻辑挪出来,补齐了强两天断掉的数据,把错误日志打开暂时先观察观察

转载于:https://www.cnblogs.com/taoshihan/p/11558299.html

某业务付费统计脚本问题排查相关推荐

  1. Zabbix每天流量统计脚本

    这是一份Zabbix服务器每天流量统计脚本,他有如下动作: 1.首先从mysql下边查询,并保存一个.csv文件. 2.将.csv文件加上时间戳. 3.发带有时间戳的csv文件到指定邮箱. //当然, ...

  2. 分享三个网页访问(点击)统计脚本,展示访问来源地图分布

    分享三个网页访问/点击统计脚本,展示访问来源地图分布 1. Flag Counter 2. Revolvermaps 3. 蝴蝶计数器 总结 首先简单展示一下三个脚本的效果; 左边的是FlagCoun ...

  3. 分省份邮电业务总量统计(亿元)2011-2019

    数据集名称:分省份邮电业务总量统计(亿元) 时间范围:2011-2019年 数据来源:各省统计年鉴 相关说明: 邮电业务总量是以价值量形式表现的邮电通信企业为社会提供各类邮电通信服务的总数量.邮电业务 ...

  4. 老男孩教育每日一题第120天-如何统计脚本执行的时间?

    老男孩教育每日一题第120天-如何统计脚本执行的时间? [root@myblog ~]# cat 123.sh sleep 10 echo 123 [root@myblog ~]# time sh 1 ...

  5. 成绩表格模板MySQL_Mysql数据统计脚本模板

    数据统计对于小型业务系统可能不需要集群计算.约定计算脚本,该脚本特点: 1.动态传入时间变量.便于重算 2.扑捉计算结果状态,执行时间 3.计算结果入库 MySQL CREATE DEFINER = ...

  6. python 日志分析_python 日志分析统计脚本 | 学步园

    脚本类似shell的tail功能,用来统计每分钟的4xx.5xx的状态码数量,统计php执行时间小于1秒.1-5秒.5秒以上的数量,和每秒的并发请求.将结果放到/tmp目录下, 也可以用cacti将结 ...

  7. oracle 临时表空间满了_精心总结--Oracle查询表空间的每日增长量和历史情况统计脚本...

    概述 今天主要总结一下Oracle表空间每日增长和历史情况统计的一些脚本,仅供参考. 11g统计表空间的每日增长量 SELECT a.snap_id, c.tablespace_name ts_nam ...

  8. 几大知名流量统计网站的统计脚本中相继植入广告代码的现象,严重影响上网体验

    近段时间浏览网页时总是实然网页开始播放视频的声音,一开始以为是宽带服务商又强制推送广告或电脑中毒了,经过对源代码的分析发现是流量统计代码中植入了广告代码,最近非常影响网页浏览体验的是百度统计插入的视频 ...

  9. 拿来主义——老外写的系统统计脚本

    附件里下载该脚本. [root@TestSizeServer ~]# ./system_summary # Aspersa System Summary Report ################ ...

最新文章

  1. php amqp rabbitmq 介绍和使用
  2. Matlab | 空间域水印技术:LSB(Least Significant Bit):计算峰值信噪比PSNR(matlab源代码)
  3. cocos 时间函数需要什么引用_酱香型白酒,为什么需要长时间储存?
  4. python如何运用到财务工作中存在的问题_财务工作存在问题及整改措施
  5. SAP UI5 应用开发教程之五十八 - 使用工厂方法在运行时动态创建不同类型的列表行项目控件试读版
  6. python中的字典推导式_17.python 字典推导式(经典代码)
  7. MySQL数据库常见的几个问题
  8. IDE:Eclipse查看Servlet源码
  9. 博士导师总结目标检测、卷积神经网络和OpenCV学习资料(教程/PPT/代码)
  10. jdk源码——HashMap
  11. 安卓程序运行后控件不显示_智能镜子显示屏掀起了智能家居行业的新潮流
  12. 【ubuntu安装交叉编译器】安装交叉编译器
  13. js的匿名函数 和普通函数
  14. [原]OpenGL基础教程(一)多边形绘制
  15. 阶段3 1.Mybatis_12.Mybatis注解开发_8 mybatis注解开发使用二级缓存
  16. HTML简单的网页代码编写
  17. logistic模型 matlab,logistic模型MATLAB代码
  18. 通俗易懂聊springMVC中的handler是什么
  19. Textpad 1.7下载
  20. 未激活的Windows11的壁纸更改方法(亲测有用)

热门文章

  1. js中setTimeout的用法和JS计时器setTimeout与setInterval方法的区别和confirm方法
  2. php excel中解析显示html代码_骑士cms从任意文件包含到远程代码执行漏洞分析
  3. windows7 php的php-ssh2,windows7下安装php的php-ssh2扩展教程_PHP教程
  4. linux date 小写h,linux date 命令详解[转载]
  5. keras 多层lstm_《Keras 实现 LSTM》笔记
  6. qtextedit非编辑时去边框_Photoshop玩腻了!这10个图形编辑神器你知道吗
  7. 微信分享时,描述内容怎么换行
  8. php ajax 删除行,php – 使用jQuery Ajax删除mySQL表行
  9. elementui 搭建布局页面路由_【项目实践】使用Vue.js和ElementUI快速实现后台管理系统的界面布局...
  10. idea编译的文件怎么用cmd打开_JAVA学习册|基础语法|cmd输出HelloWorld