Подсчет статистики по браузерам по логам apache: различия между версиями

Материал из Linux Wiki
Перейти к навигацииПерейти к поиску
(Новая: Функция для подсчета статистики посещений сайта для различных браузеров по логам веб-сервера apache ; И...)
 
 
(не показано 6 промежуточных версий этого же участника)
Строка 7: Строка 7:
browsercounter() {
browsercounter() {
[ -z "${1}" ] && logfile="$(domroot)/logs/access_log" || logfile="${1}"
[ -z "${1}" ] && logfile="$(domroot)/logs/access_log" || logfile="${1}"
[ -x /usr/bin/mawk ] && cmd='mawk' || cmd='awk'


awk '/GET/&&/Firefox/||/GET/&&/Iceweasel/{firefox+=1};/GET/&&/Opera/{opera+=1};/GET/&&/MSIE/{msie+=1};/GET/&&/Safari/{safari+=1};/GET/&&/Konqueror/{konq+=1};/GET/{all+=1} END {total=safari+konq+firefox+opera+msie ; print "Firefox:\t"firefox"\t"firefox*100/total" %\nOpera:\t\t"opera"\t"opera*100/total" %\nMS IE:\t\t"msie"\t"msie*100/total"  %\nSafari:\t\t"safari"\t"safari*100/total" %\nKonqueror:\t"konq"\t"konq*100/total" %\nTotal:\t\t"firefox+konq+safari+opera+msie"\nAll hits:\t"all}' "${logfile}"
${cmd} '
/GET/&&/Firefox/||/GET/&&/Iceweasel/{firefox+=1}
/GET/&&/Opera/{opera+=1}
/GET/&&/MSIE/{msie+=1}
/GET/&&/Safari/{safari+=1}
/GET/&&/Konqueror/{konq+=1}
/GET/{all+=1}
END {total=safari+konq+firefox+opera+msie ; print "Firefox:\t"firefox"\t"firefox*100/total" %\nOpera:\t\t"opera"\t"opera*100/total" %\nMS IE:\t\t"msie"\t"msie*100/total"  %\nSafari:\t\t"safari"\t"safari*100/total" %\nKonqueror:\t"konq"\t"konq*100/total" %\nTotal:\t\t"firefox+konq+safari+opera+msie"\nAll hits:\t"all}' "${logfile}"
}
}
</source>
</source>
----
----


[[Category:Bash]][[Category:Awk]][[Category:Функция]]
[[Category:Awk]][[Category:Shell-функция]][[Category:Скрипт]]

Текущая версия на 17:20, 20 февраля 2009

Функция для подсчета статистики посещений сайта для различных браузеров по логам веб-сервера apache

Использование
browsercounter access_log

browsercounter() {
[ -z "${1}" ] && logfile="$(domroot)/logs/access_log" || logfile="${1}"
[ -x /usr/bin/mawk ] && cmd='mawk' || cmd='awk'

${cmd} '
/GET/&&/Firefox/||/GET/&&/Iceweasel/{firefox+=1}
/GET/&&/Opera/{opera+=1}
/GET/&&/MSIE/{msie+=1}
/GET/&&/Safari/{safari+=1}
/GET/&&/Konqueror/{konq+=1}
/GET/{all+=1}
END {total=safari+konq+firefox+opera+msie ; print "Firefox:\t"firefox"\t"firefox*100/total" %\nOpera:\t\t"opera"\t"opera*100/total" %\nMS IE:\t\t"msie"\t"msie*100/total"  %\nSafari:\t\t"safari"\t"safari*100/total" %\nKonqueror:\t"konq"\t"konq*100/total" %\nTotal:\t\t"firefox+konq+safari+opera+msie"\nAll hits:\t"all}' "${logfile}"
}