文章目录
- 常用Shell脚本
- 一. 定期更新分区数据
- 二、获取系统资源的使用情况
常用Shell脚本
一. 定期更新分区数据
在某些场景下,我们需要对N年前某一分区的数据进行删除,并添加今年该对应分区的数据,实现数据的流动式存储。
#!/bin/bash
dt=$(date -d '-1 month' '+%F')
del_year=$(date -d "$dt -3 year" '+%Y')
del_month=$(date -d "$dt -3 year" '+%m')
add_year=$(date -d '+%Y')
add_month=$(date -d '+%m')hive -e "ALTER TABLE hive_internal_par_ext_regex_test1w DROP PARTITION(year=$del_year,month=$del_month);"
hive -e "ALTER TABLE hive_internal_par_ext_regex_test1w ADD PARTITION(year=$add_year,month=$add_month);"if [ $? -eq 0 ];thenecho "SUCCESS TO DROP PREVIOUS PARTITION AND ADD NEW PARTITION"
elseecho "FAIL TO DROP PREVIOUS PARTITION AND ADD NEW PARTITION"
fi
二、获取系统资源的使用情况
该脚本用于获取CPU使用情况、内存信息、内存使用百分比、磁盘空闲量、磁盘使用百分比等资源使用情况,并且最终结果写入日志文件中。
CPU_USAGE=$(mpstat|awk '/all/{printf("%.2f\n",(100-$NF)/100)}')
MEM_FREE=$(free|awk '/Mem/{f=$4;M=10241024;printf("%.2f\n",f/M)}')
MEM_PERCENT=$(free|awk '/Mem/{f=$4;t=$2;printf("%.2f\n",f/t)}')
DISK_FREE=$(df|awk 'BEGIN{t=0;u=0}//dev/s./{next}/[0-9]{2,}/{t+=$2;u+=$3}END{M=10241024;t/=M;u/=M;l=t-u;printf("%.2f",l)}')
DISK_PERCENT=$(df|awk 'BEGIN{t=0;u=0}//dev/s./{next}/[0-9]{2,}/{t+=$2;u+=$3}END{M=1024*1024;t/=M;u/=M;l=t-u;o=l/t;printf("%.2f",o)}')
echo "$(date +'%Y-%m-%d %H:%M:%S') - CPU: $CPU_USAGE, MEM: ${MEM_FREE}G ($MEM_PERCENT), DISK: ${DISK_FREE}G ($DISK_PERCENT)" >> /log/resource.log