#!/bin/bash
#
# Overview: Periodically cleans up pg_xlog to avoid pglog disk outages
# 
set -x
cd /usr/pgdata/pg-prod-2/pg_xlog
while true; do
    # Latest checkpoint's REDO WAL file
    LRW=$(/usr/lib/postgresql/9.6/bin/pg_controldata -D /usr/pgdata/pg-prod-2/ | grep "Latest checkpoint's REDO WAL file" | awk -F': *' '{print $2}')
    echo "CLEANUP START ["$(date +"%Y-%m-%d %H:%M:%S")"]" >> deleted-WAL.txt
    ls | awk -v LRW=$LRW '$1 < LRW { print $1 }' | tee -a deleted-WAL.txt | xargs -I% rm %
    echo "CLEANUP END   ["$(date +"%Y-%m-%d %H:%M:%S")"]" >> deleted-WAL.txt
    sleep 4
done
