#!/bin/bash # # weblogs.sh - update per-user access and error log information # # Fixed problem with user error log, enhanced output 20100116 (mth) # Initial release 20100115 (mth) # cd /var/www/data/pages/logs for user in `/bin/ls -1 *.txt | cut -d'.' -f1`; do echo "~/public_html/ web server access and error logs, the 32 most recent entries for each." > $user.txt echo >> $user.txt echo "=====Common Server Codes=====" >> $user.txt echo "^ Code ^ Description ^" >> $user.txt echo "| 200 |OK |" >> $user.txt echo "| 206 |Partial content |" >> $user.txt echo "| 301 |Moved permanently |" >> $user.txt echo "| 302 |Redirection |" >> $user.txt echo "| 304 |Not modified |" >> $user.txt echo "| 400 |Bad request |" >> $user.txt echo "| 403 |Forbidden |" >> $user.txt echo "| 404 |Not found |" >> $user.txt echo "| 408 |Request timeout |" >> $user.txt echo >> $user.txt echo "=====Access Log=====" >> $user.txt echo "^ Who ^ What ^ Where ^ When ^ How ^" >> $user.txt grep " /~$user" /var/log/apache2/access.log | tail -32 | sed -e 's/^\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\) .*\[\([0-9][0-9]*\/...\/[0-9][0-9][0-9][0-9]\):\([0-9][0-9]:[0-9][0-9]:[0-9][0-9]\) -[0-9][0-9][0-9][0-9]\] "\([A-Z][A-Z]*\) \(.*\) \(.*\)" \([0-9][0-9]*\) .*$/|\1 | \7 |\5 |\2 at \3|\6 \4|/g' >> $user.txt echo >> $user.txt echo "=====Error Log=====" >> $user.txt echo "^ Who ^ What ^ Where ^ When ^ Why ^" >> $user.txt grep "/$user" /var/log/apache2/error.log | tail -32 | sed -e 's/^\[... \(...\) \([0-9][0-9]\) \(..:..:..\) \([0-9][0-9][0-9][0-9]\)\] \[\(.*\)\] \[client \([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)\] \(.*\): \/home\/.*\(public_html.*\)$/|\6| \5 |\8 |\2\/\1\/\4 at \3|\7 |/' >> $user.txt echo >> $user.txt chown wedge:www-data $user.txt chmod 660 $user.txt done