Notes for Self:
Following script can delete single table older than X days from the mysql DB. It was pretty useful for SYSLOG-NG loggin system, where table is daily created automagically in database using current date using YYYY_MM_DD format (dates have underscore sign). There are other solutions as well like creating procedure etc, but since this was older MySQL version , therefore I took this route.
#!/usr/bin/env bash ####!/bin/sh #set -x # Script to delete XX days older single table from particular DB # Made for syslog-ng to save disk space # Syed Jahanzaib / aacable at hotmail dot com / aacable.wordpress.com ################# ################# #### MODIFY BELOW #MYSQL DETAILS SQLUSER="sql_user" SQLPASS="sql_password" DB="syslog" DAYS=30 ################# ################# # Don't modify below export MYSQL_PWD=$SQLPASS CMD="mysql -u$SQLUSER --skip-column-names -s -e" DATE=`date +'%Y-%m-%d'` DEL_TABLE=`date +'%Y_%m_%d' -d "$DAYS day ago"` logger syslog_ng script started $DATE , IT WILL DELETE $DEL_TABLE TABLE FROM $DB # This is one time step. echo " Script Started @ $DATE " # --- Now Delete $DEL_TABLE TABLE from $DB table ... $CMD "use $DB; SHOW TABLES;" $CMD "use $DB; DROP TABLE $DEL_TABLE;" DATE=`date +'%Y-%m-%d'` logger TABLE_TRIMMING script ENDED $DATE , $DEL_TABLE TABLE FROM $DB deleted, confirm it plz $CMD "use $DB; SHOW TABLES;" echo "TABLE_TRIMMING script ENDED at $DATE , $DEL_TABLE TABLE FROM $DB deleted, confirm it Please. Jz"
Regard’s
Syed JAHANZAIB