【效率提升】程序员常用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 ];then
        echo "SUCCESS TO DROP PREVIOUS PARTITION AND ADD NEW PARTITION"
else
        echo "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

在这里插入图片描述

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Byyyi耀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值