如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接信息。

苏南大叔今天给大家带来的是,piwik批量任务的docker版本设置过程。为啥docker版本要特别的说明呢?因为docker下面默认没有crontab,就是说,我们想当然的在piwik的docker镜像里面,设置crontab是不可能完成的任务。不用吐槽,docker的镜像里面连vi都没有,所以,根本不必吐槽没有crontab。相关文章地址如下:https://newsn.net/say/piwik-optimize-crontab.html

本篇文章可能正确答案很多,大家根据自己的情况来选择不同的答案。我的宿主机是个mac,所以,对于我来说,标准答案可能是如下这样的。

首先,利用docker的共享目录,先建立好了一个sh文件。内容如下:

/usr/local/bin/php /var/www/html/console core:archive --url=http://localhost:10001/ >> /var/www/html/crontab/piwik-archive.log

上面涉及到的路径信息,都是基于docker的some-piwik这个镜像的。

docker版piwik执行定时任务 - piwik_crontab

docker版piwik执行定时任务(图7-1)

docker版piwik执行定时任务 - piwik_crontab_2

docker版piwik执行定时任务(图7-2)

然后利用宿主机(mac)来执行docker(some-piwik)里面的这个sh脚本。这个过程中,主体身份切换蛮频繁的。大家要仔细想好。

*/1 * * * * /Applications/Docker.app/Contents/Resources/bin/docker exec some-piwik /bin/bash /var/www/html/crontab/crontab.sh >/www/docker/piwik_cron.log 2>&1

docker版piwik执行定时任务 - piwik_crontab_4

docker版piwik执行定时任务(图7-3)

上图中,黄色箭头是镜像里面的路径,橙色是镜像外的路径。是不是非常难?我觉得也是。各种命令组合的非常复杂,而且也没有个括号之类的,体现一下优先级别。

到此为止,答案已经揭晓完毕。下面开始,由苏南大叔给大家,详细说明一下。

在docker镜像里面shell脚本,也可以写成这样。

cd /var/www/html && php console core:archive --url=http://localhost:10001 >> /var/www/html/contab/docker_cron.log

这里面,就用了一些,简写的相对路径。

而镜像外宿主机上的shell也可以写成这样。

* * * * * docker exec some-piwik sh /var/www/html/crontab/crontab.sh

看起来明朗很多了吧。但是,可能理想和现实就是有差别的。路径简写,就可能带来意料之外的结果了。命令在shell里面可以直接执行。但是放到crontab里面,就不按套路走了。这是个悲伤的故事。调试的方法就是在crontab的后面带上如下类似脚本:

>/yourpath/log.log 2>&1

这样的话,crontab的输出就会输出到这里,然后就可以看到一些错误输出了。这也就是为什么,苏南大叔的最初的脚本里面,docker命令会使用全路径的原因。当然,你还会看到其他的错误输出,所以,这个crontab级别的log输出,还是挺有用的。

docker版piwik执行定时任务 - piwik_crontab_5

docker版piwik执行定时任务(图7-4)

至于docker的位置,是用下面的方法找到的。

find / -name docker

docker版piwik执行定时任务 - piwik_crontab_7

docker版piwik执行定时任务(图7-5)

好了,原理基本上叙述完毕。剩下的是中间过程的一些其他截图,大家看看吧。

docker版piwik执行定时任务 - piwik_crontab_3

docker版piwik执行定时任务(图7-6)

docker版piwik执行定时任务 - piwik_crontab_6

docker版piwik执行定时任务(图7-7)

对于其他的情况来说,解决方案应该大同小异。不过,要掌握好crontab的调试方法。才好具体问题具体分析。您说,对吧。关于piwik的更多相关文章,请点击苏南大叔的其他文章:https://newsn.com.cn/tag/piwik/

  【piwik】秘籍文章入口,仅传授于有缘之人  piwik

欢迎转载传播本篇原创文章,转载请保留链接及作者信息。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

打赏领取小礼物

打赏任意金额,发送截图到邮箱 shang@newsn.net ,可以领取精选回馈如下(任选其一):
  • 《前端视频教程大礼包》一套
  • 《wordpress精选皮肤》一套
  • 《dedecms织梦精选模板》一套
感谢您的打赏,让我更有动力,将更多精彩教程文章,呈现给大家!谢谢!

岁月静好

关注互联网发展,关注苏南大叔的《程序如此灵动~》博客
本文章来自:程序如此灵动~
博客地址为:https://newsn.net/
原文地址为:https://newsn.net/say/docker-piwik-crontab.html
上一篇好文:piwik优化之定时任务生成统计数据
下一篇好文:centos如何编译安装node环境

如果您转载了本文章,出于某种原因,并没有注明作者或者出处。
在这里,苏南大叔也表示理解和支持。因为苏南大叔深深地明白:
您会在合适的时机,合适的地方,给本博客一个外链。对吧?
您若开心,便是安好!岁月静好,但愿世界和平,没有纷争~