
Recibo este error del trabajo cron de AWStats 7.2 (en Ubuntu 14.04, usando el paquete stock awstats) al leer un registro de icecast a través de una tubería para filtrar un vhost:
Error while processing /etc/awstats/awstats.mysite.conf
Create/Update database for config "/etc/awstats/awstats.mysite.conf" by AWStats version 7.2 (build 1.992)
From data in log file "grep '\/mysite' < /var/log/icecast2/access.log |"...
Phase 1 : First bypass old records, searching new record...
Searching new records from beginning of log file...
Error: Command for pipe 'grep '\/mysite' < /var/log/icecast2/access.log |' failed
Setup ('/etc/awstats/awstats.mysite.conf' file, web server or permissions) may be wrong.
Check config file, permissions and AWStats documentation (in 'docs' directory).
A primera vista, esto parece un simple problema de permisos, pero el www-data
usuario con el que se ejecuta puede leer tanto los archivos de configuración como los de registro. Si conecto esa cuenta de usuario, puedo leer ambos archivos sin problemas.
#sudo -u www-data ls -al /etc/awstats/awstats.mysite.conf /var/log/icecast2/access.log
-rw-r--r-- 1 www-data www-data 444 May 13 11:23 /etc/awstats/awstats.mysite.conf
-rw-r--r-- 1 icecast2 icecast 0 Jun 8 05:29 /var/log/icecast2/access.log
Si ejecuto el comando grep con el mismo usuario, también funciona bien.
Para evitar problemas falsos, deshabilité todos los complementos; de todos modos, solo estoy usando geoip, por lo que la configuración es bastante básica. Si ejecuto el comando awstats manualmente con --debug=6
salida completa, parece que no tiene ningún problema para leer el archivo; el error aparece cuando se cierra el archivo. Da la casualidad de que este archivo de registro está actualmente vacío, por lo que no hay nada que analizar, pero seguramente eso no debería generar un error de permisos.
Sat Jun 13 20:33:21 2015 - DEBUG 1 - Start Update process (lastprocesseddate=201505)
Sat Jun 13 20:33:21 2015 - DEBUG 1 - Open log file "grep '\/mysite' < /var/log/icecast2/access.log |"
Phase 1 : First bypass old records, searching new record...
Searching new records from beginning of log file...
Sat Jun 13 20:33:21 2015 - DEBUG 1 - _host_p:0 _host_h:0 _host_k:0 _host_l:0 _host_s:0 _host_u:0
Sat Jun 13 20:33:21 2015 - DEBUG 1 - _url_p:0 _url_k:0 _url_e:0 _url_x:0
Sat Jun 13 20:33:21 2015 - DEBUG 1 - _waithost_e:0 _waithost_l:0 _waithost_s:0 _waithost_u:0
Sat Jun 13 20:33:21 2015 - DEBUG 1 - End of processing log file (AWStats memory cache is TmpDNSLookup=0 TmpBrowser=0 TmpOS=0 T
mpRefererServer=0 TmpRobot=0)
....(lots of stuff that seems related to successful processing and output deleted)
Sat Jun 13 20:33:21 2015 - DEBUG 1 - Update offset of section sider_404=10022 in file at offset 1381
Sat Jun 13 20:33:21 2015 - DEBUG 1 - Update MonthVisits=290 in file at offset 2140
Sat Jun 13 20:33:21 2015 - DEBUG 1 - Update MonthUnique=168 in file at offset 2173
Sat Jun 13 20:33:21 2015 - DEBUG 1 - Update MonthHostsKnown=0 in file at offset 2210
Sat Jun 13 20:33:21 2015 - DEBUG 1 - Update MonthHostsUnknown=182 in file at offset 2249
Sat Jun 13 20:33:21 2015 - DEBUG 1 - Call to Init_HashArray
Sat Jun 13 20:33:21 2015 - DEBUG 1 - Close log file "grep '\/mysite' < /var/log/icecast2/access.log |"
Sat Jun 13 20:33:21 2015 - DEBUG 1 - Command for pipe 'grep '\/mysite' < /var/log/icecast2/access.log |' failed
¿Qué me he perdido?