阿毛
It's me !
想你所想

Matomo归档计划之定时任务

Matomo是支持以定时任务的方式去完成统计数据的归档,并输出报告。

这里主要总结下,如何通过Linux cron去完成Matomo的归档。本文以CentOS7, Matomo 3.13.3 为例。

首先,确保matomo平台的后台配置

https://file.blog.humh.cn/2020/04/image-16-1024x420.png

参考官方文档(挺详细的):https://matomo.org/docs/setup-auto-archiving/#help-for-corearchive-command

CentOS7中自带了crontab,如果没有 yum install crontabs 安装即可。
/sbin/service crond start 启动crontab任务。

crontab主要有两种方式可以去自定义用户的定时任务。
1、crontab -e的方式
crontab -e会编辑当前用户的定时任务,如果当前root,则编辑root的定时任务。所以一般配合-u参数显示指定用户,crontab -u apache -e即可编辑apache用户的定时任务。如下图

https://file.blog.humh.cn/2020/04/image-9-1024x81.png

/sbin/service crond reload 刷新配置即可。

2、cron.d的方式
第1种方式在多用户定时任务时不利于管理,所以linux提供了额外的cron.d的方式。cron.d 目录下包含了定时任务配置文件。

https://file.blog.humh.cn/2020/04/image-10.png

其中matomo-archive就是我自定义的归档计划任务。当编写完成后,之后Linux每次都会去读取cron.d目录下的文件,执行其中的定时任务。
关于crontab执行的日志,在 /var/log 目录下可以看到(会按日期进行切割)

https://file.blog.humh.cn/2020/04/image-11.png

crontab的内容可参考:https://www.cnblogs.com/ftl1012/p/crontab.html


下面这里总结下,具体matomo定时任务的脚本内容。
上面的官方文档中已经很详细了,

MAILTO="youremail@example.com" 
5 * * * * www-data /usr/bin/php /path/to/matomo/console core:archive --url=http://example.org/matomo/ > /home/example/matomo-archive.log 

配置参数:

  • MAILTO =” youremail@example.com”如果脚本执行过程中出现错误,脚本输出和错误消息将发送到youremail@example.com地址。
  • 5 * * * * 为cron表达式写法,具体可另行了解cron表达式,这里为每天的每小时的第5分钟执行一次任务
  • www-data是将执行cron作业的用户,通常应是您的Web服务器用户。有时是“ apache”。这个可以看你的matomo目录的用户权限,ll即可。
  • / usr / bin / php 是PHP可执行文件的路径。不清楚的话,which php即可。
https://file.blog.humh.cn/2020/04/image-12.png
  • / path / to / matomo / console是服务器上Matomo安装目录中console的路径。如你的matomo安装目录为 /var/www/matomo/,那么在目录下,存在一个“console”的php执行文件。
  • core:archive 无需改变
  • –url=http://example.org/matomo/ 指定你搭建完成后可访问的matomo地址。
  • > /home/example/matomo-archive.log 是脚本将写入输出的路径。如果您不想记录最后的Matomo cron输出文本,则可以用/ dev / null替换此路径。脚本输出包含有用的信息,例如,归档了哪些网站,处理每个日期和网站所需的时间等。此日志文件应写在Web服务器之外的位置,以便人们无法通过其查看浏览器(因为此日志文件将包含有关Matomo安装的一些敏感信息)。您也可以替换>通过>>以脚本输出追加到日志文件,而不是覆盖在每次运行时(但我们建议你旋转这个日志文件或删除它如:每周一次)。
  • 2> /home/example/matomo-archive-errors.log 是脚本将在其中写入错误消息的可选路径。如果您在cron标签中省略了此选项,那么错误将通过电子邮件发送到您的MAILTO地址。如果将其写在crontab中,则错误将记录在此指定的错误日志文件中。该日志文件应写在Web服务器之外的位置,以使人们无法通过其浏览器查看它(因为该日志文件将包含有关Matomo安装的一些敏感信息)。
    注意:最后两点日志均配置的结果如:
    5 * * * * www-data /usr/bin/php /path/to/matomo/console core:archive --url=http://example.org/matomo/ > /home/example/matomo-archive.log > /home/example/matomo-archive-errors.log
    最后两点指定的日志路径,一定要保证有权限读写!

根据自己的服务器情况,配置完成后,可以通过shell测试一下,是否无误。

su www-data -s /bin/bash -c "/usr/bin/php /path/to/matomo/console core:archive --url=http://example.org/matomo/"
该测试命令不包含指定邮箱、cron表达式以及执行用户部分。
正常的话,输入命令,回车执行完后,在终端是看不到效果的,你可以在你的matomo平台上的“报表面板”看到归档的信息,

https://file.blog.humh.cn/2020/04/image-15-1024x818.png

或者“系统检查”中也能看到。

https://file.blog.humh.cn/2020/04/image-13.png

在无误的情况下,将整个完成脚本(从 MAILTO 到最后指定的 log)写入到crontab配置文件中,如果采用的第1种方式,则crontab -u “归档计划任务执行用户” -e 进入编辑界面,将脚本copy进去即可。如果采用第2种方式,则到 /etc/cron.d 目录下,编辑你新增的定时任务文件,如“matomo-archive”,将脚本内容copy进去即可。确保crontab启动后,在每次任务执行时,观察 /var/log 下的cron日志会看到执行的脚本。

https://file.blog.humh.cn/2020/04/image-14-1024x25.png

humh

文章作者

站长本人,一个憨批!

发表评论

textsms
account_circle
email

想你所想

Matomo归档计划之定时任务
Matomo是支持以定时任务的方式去完成统计数据的归档,并输出报告。 这里主要总结下,如何通过Linux cron去完成Matomo的归档。本文以CentOS7, Matomo 3.13.3 为例。 首先,确保mat…
扫描二维码继续阅读
2020-04-06