mysql_del.sh

#!/bin/bash
DIR=”$( cd “$( dirname “$0″ )” && pwd )”

MUSER=root
MPASS=passwd
MDB=aaa

MHOST=”localhost”

# 设置命令路径
MYSQL=$(which mysql)
AWK=$(which awk)
GREP=$(which grep)

# 连接mysql数据库
$MYSQL -u $MUSER -p$MPASS -h $MHOST -e “use $MDB” &>/dev/null
if [ $? -ne 0 ]
then
echo “Error – 用户名或密码无效,无法连接mysql数据库”
exit 2
fi

TABLES=$($MYSQL -u $MUSER -p$MPASS -h $MHOST $MDB -e ‘show tables’ | $AWK ‘{ print $1}’ | $GREP -v ‘^Tables’ )

echo -n “$TABLES” > $DIR/tables.tmp
grep “aaa_email” tables.tmp > $DIR/tables.txt
grep “aaa_sms” tables.tmp >> $DIR/tables.txt
grep “aaa_wechat” tables.tmp >> $DIR/tables.txt

#脚本如果选在31号执行会有问题
day=`date +%d`
if [ $day -eq 31 ]
then
echo “脚本如果选在31号执行会有问题,bye!”
exit 4
fi
DATE=`date “+%Y_%m”`
DATE1=`date -d “-1 month” “+%Y_%m”`
DATE2=`date -d “-2 month” “+%Y_%m”`
DATE3=`date -d “-3 month” “+%Y_%m”`
DATE4=`date -d “-4 month” “+%Y_%m”`
DATE5=`date -d “-5 month” “+%Y_%m”`
DATE6=`date -d “-6 month” “+%Y_%m”`

echo $DATE $DATE1 $DATE2 $DATE3 $DATE4 $DATE5 $DATE6

grep -v “$DATE\|$DATE1\|$DATE2\|$DATE3\|$DATE4\|$DATE5\|$DATE6” tables.txt > $DIR/tables.del
cat tables.del

#del 6 month ago tables
for tables in `cat tables.del`;
do
echo “Deleting $tables table from $MDB database…”
$MYSQL -u $MUSER -p$MPASS -h $MHOST $MDB -e “drop table $tables”
done

Print Friendly

发表评论

电子邮件地址不会被公开。 必填项已用*标注