一个计划任务实现每日与每月的定时统计
2020-12-16 本文已影响0人
php转go
遇到过一个需求,每天0点统计上一天的数据,每个月1号统计上一个月的总数据
一般情况下,为了方便,会直接创建两个计划任务
我觉得一个sh文件就能解决的问题,就没必须搞两个计划任务
介于我是PHP开发,我用的是THINKPHP框架,用的是CLI运行模式
当然也有PHPer喜欢用计划任务 curl 访问链接的方式,至于哪种方式比较好,见仁见智啦
计划任务设置
0 0 * * * sh xxx/xxxx/xxx.sh >> log.txt
#如果设置curl访问链接方式
0 0 * * * curl https://xxx.com/xxx/xxx
shell文件内容
#!/bin/bash
basePath=../;
time=$1;
if [ ! -n "$time" ] ;then
#如果没有传具体日期,就默认昨天
time=$(date "+%Y%m%d" -d "-1 days");
fi
today=${time:0-2:2} #从右边第2个字符开始截取,一直到结束,得到日期。
first='01';
#切换到站点根目录
cd $basePath;
#执行每天定时数据统计,daily 为自定义指令
php think daily $time
#如果是01号
if [ $today == $first ]
then
#执行每个月定时数据统计
php think monthly $time
fi