是否有可能安排一个python脚本运行在logrotate结束?

我在一个没有运行任何javascript的站点上使用Piwik Analytics,我宁愿从访问日志中创build数据,而不是从图片跟踪器中创build数据 – 日志的结果实际上更好,因为它们可以包含静态文件下载。

这是一个Ubuntu 12.04和nginx 1.4.5的LEMP服务器。

python脚本位于/var/www/example1.com/public/piwik/misc/log-analytics/import-logs.py ,需要运行几个选项。 访问日志位于/var/www/example2.com/logs/access.log.1

/etc/logrotate.d/nginx的相关部分包含:

 /var/www/*/logs/*.log { daily missingok rotate 36500 compress delaycompress notifempty create 0640 www-data adm sharedscripts prerotate if [ -d /etc/logrotate.d/httpd-prerotate ]; then \ run-parts /etc/logrotate.d/httpd-prerotate; \ fi; \ endscript postrotate [ -s /run/nginx.pid ] && kill -USR1 `cat /run/nginx.pid` endscript } 

我不知道如何整合一个python脚本,以便它可以在循环结束后运行(循环完成后)。

编辑:

另外一个我最初没有考虑的问题是,这个脚本只需要运行一个域 – 服务器上的其他域不需要脚本。 上面创build的文件是为了自动旋转添加到服务器的所有域的日志,而不必编辑/etc/logrotate.d/nginx

你可以在endscriptendscript行之间放置你想要执行的命令(确保已经存在的行):

  postrotate [ -s /run/nginx.pid ] && kill -USR1 `cat /run/nginx.pid` /usr/bin/python /var/www/example1.com/public/piwik/misc/log-analytics/import-logs.py somearguments endscript