#!/bin/bash
#待检测表
t1=proj_dwd_area_model_md.dwd_md_testdata_detail_acq_for_sac_0
t2=proj_dwd_area_model_md.dwd_md_testdata_detail_acq_for_sac_1
#将待检测的目录(可以为多个)加载至数组中
array_check=($t1 $t2)
s=""
#过期日期
m1=$(date -d "-30 days" +"%Y%m%d")
echo $m1
#Func: 删除指定时间之前的过期,这里设置的是30天前
removeOutDate(){
sss="show partitions from "$1
echo $sss
for pname in $(mysql -ubpit_nina -pMAog -h 10.11.999.999 -P 9030 -e "$sss" | grep tag |awk '{print $2}'|awk -F "_" -v a=$m1 '$NF<a {print $0}')
do
ss="ALTER TABLE "$1" DROP PARTITION "$pname";"
s="$s $ss"
done
echo $s
#mysql -ubpit_nina -pMAog -h 10.11.999.999 -P 9030 -e "$s"
}
#Func: 执行删除
execute(){
echo -e "\n\n"
echo "$(date +'%Y-%m-%d %H:%M:%S') start to deltable"
for i in ${array_check[@]}
do
echo "$(date +'%Y-%m-%d %H:%M:%S') processing deltable: $i"
s=""
removeOutDate $i
echo -e "\n"
done
echo "$(date +'%Y-%m-%d %H:%M:%S') remove finished"
echo -e "\n\n"
}
#开始执行
execute
shell 循环拼接批量执行
于 2024-12-04 08:35:38 首次发布