Skip to content

Instantly share code, notes, and snippets.

@ktilcu
Last active August 15, 2017 23:37
Show Gist options
  • Select an option

  • Save ktilcu/c828414b6ddd2dd8fcd5 to your computer and use it in GitHub Desktop.

Select an option

Save ktilcu/c828414b6ddd2dd8fcd5 to your computer and use it in GitHub Desktop.
kyle-Snippet: Zgrep nginx logs from multiple load balancers
#!/bin/bash
set -e
YEARMONTH=$(date +%Y%m)
MONTH=$(date +%b)
TMP_FILE="tmp.log"
DESTINATION_FILE=""
while getopts d:m: opts; do
case ${opts} in
m) MONTH=${OPTARG} ;;
d) DATE=${OPTARG} ;;
esac
done
FIRST_LOG_DATE=$(( DATE + 1))
LAST_LOG_DATE=$(( DATE + 2))
if [ $DATE -lt 10 ]; then
DATE="0$DATE"
fi
if [ $FIRST_LOG_DATE -lt 10 ]; then
FIRST_LOG_DATE="0$FIRST_LOG_DATE"
fi
if [ $LAST_LOG_DATE -lt 10 ]; then
LAST_LOG_DATE="0$LAST_LOG_DATE"
fi
DESTINATION_FILE="combined_access.log-$YEARMONTH$DATE.PST"
echo "Smashing files together"
for f in "lb03" "lb04"; do
cat "${f}_access.log-$YEARMONTH$FIRST_LOG_DATE.gz" "${f}_access.log-$YEARMONTH$LAST_LOG_DATE.gz" >> $TMP_FILE
done
echo "Grepping logs for tracking events on $MONTH/$DATE PST"
zgrep "ad.js.php.*campaignID.*sellerID=\| ad.js.php.*sellerID=.*campaignID" $TMP_FILE | grep -E -e "$DATE/$MONTH/....:(0[8-9]|[1-2][0-9]):" -e "$FIRST_LOG_DATE/$MONTH/....:0[0-7]" | tee $DESTINATION_FILE | wc -l
rm $TMP_FILE
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment