Я получаю эту ошибку из задания cron AWStats 7.2 (в Ubuntu 14.04, используя стандартный пакет awstats) при чтении журнала icecast через канал для фильтрации одного виртуального хоста:
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).
На первый взгляд, это выглядит как простая проблема с разрешениями, но файлы конфигурации и журналы доступны для чтения. www-data
пользователь это работает под. Если я войду в эту учетную запись пользователя, я смогу прочитать оба файла без проблем.
#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
Если я запускаю команду grep под тем же пользователем, это тоже работает нормально.
Чтобы избежать ложных проблем, я отключил все плагины - я все равно использую только geoip, поэтому настройка довольно ванильная. Если я запустил команду awstats вручную с полным --debug=6
output похоже, что у него нет проблем с чтением файла - ошибка выдается при закрытии файла. Как это часто бывает, этот файл журнала в настоящее время пуст, поэтому нечего анализировать, но, конечно же, это не должно вызывать ошибку прав доступа?
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
Что я пропустил?