需求:每天定时清理空间占有率为x%的文件系统,包括PAMS和PMTS

#!/bin/bash
: <<EOF
@Time:2023/03/22
@Author:Chase
版本:定时任务实现定时清理,空间使用率在x%以上就自动清理
每天23:59定时执行:使用crontab来实现定时,配好时间、脚本路径,间隔时间自动执行即可
EOF #判断当前目录下是否已经有/tmp/kfc/claren/shellscripts/log_clear_record.log了
if [ -e /tmp/kfc/claren/shellscripts/log_clear_record.log ]; then
echo $(date) >>/tmp/kfc/claren/shellscripts/log_clear_record.log # 有则追加
else
echo $(date) > /tmp/kfc/claren/shellscripts/log_clear_record.log # 没有则创建
fi function judge_os_cal_usage() {
# 判断系统类型,计算使用率,如果分开,就不用区分是不是AIX了 !
CurOS=$(uname -a | awk '{print $1}')
# if [ $CurOS =“AIX”] # 那就是unix系统,调用cal unix usage
# then
# log_usage='df -g log_path' # 查1g占用空间,结果如/dev/mapper/rootvg-rotlv 34G 24G 11G 69% / 分系统,适用SUSE
if [ $CurOS = "Linux" ]; then
log_usage=$(df -h $log_path) # 查1og占用空间,结果如/dev/mapper/rootvg-rootlv 34G 24G 11G 69% / 分系统,适用SUSE
else
log_usage="无log文件"
fi
} function access_pams_path() {
# 根据Pams两种路径是否存在来寻找
if [ -e /pmts/pamsagt/log ]; then
pams_path="/pmts/pamsagt/log"
elif [ -e /cnaps2/pamsagt/log ]; then
pams_path="/cnaps2/pamsagt/log"
elif [ -e /cnaps2/pamspro/log ]; then
pams_path="/cnaps2/pamspro/log"
elif [ -e /cnaps2/pams/log ]; then
pams path="/cnaps2/pamspro/log"
else
pams_path="无pams log路径"
fi
} function access_pmts_path() {
# 根据Pmts两种路径是否存在来寻找
if [ -e /pmts/log ]; then
pmts_path="/pmts/1og"
elif [ -e /cnaps2/pmts/log ]; then
pmts path="/cnaps2/pmts/log"
else
pmts_path="无pmts log路径"
fi
} function clear_log() {
# 清理日志,只要可用空间大于8,就一直从远往近删,直到小于指定比例
if [[ $log_usage_num -gt 80 ]]; then # >80%
clean_files=$(find $log_path -mtime +10 -name "[0-9]*") # 符合条件的文件,用于记录删了哪些文件
find $log_path -mtime +10 -name "[-9]*" -exec rm -rf {} \; # 清x天前的,只删除如2220101之类的文件或目录
judge_os_cal_usage $log_path # 查log占用空间,单位为bytes,结果如4229 log分系统,适用SUSE
echo -e "$log_path log清理成功,已清理女件包括:\n $clean_files" >>/tmp/kfc/claren/shellscripts/log_clear_record,log # 记录已用空间大小
echo "log剩余空间如下:" >>/tmp/kfc/claren/shellscripts/log_clear_record.log # 记录剩余空间
echo $log_usage >>/tmp/kfc/claren/shellscripts/log_clear_record.log # 记录剩余空间
echo "-- ${log_path} log清理完成 " >>/tmp/kfc/claren/shellscripts/log_clear_record.log
else
echo "-- ${log_path} 空间足够,无需清理" >>/tmp/kfc/claren/shellscripts/log_clear_record.log
fi
} function rep_ope_log() {
# 2.2 判断系统型号,计算空间使用率
judge_os_cal_usage $log_path
echo"log占用情况如下:" >>/tmp/kfc/claren/shellscripts/log_clear_record.log # 记录已用空间大小
echo $log_usage >>/tmp/kfc/claren/shellscripts/log_clear_record.log # 2.3 提取69%中的69 !!!注意,unix不支持-P -o
log_usage_num=$(echo $log_usage | awk '{print $(NF-1)}' | grep -Po "\d+")
# log usage num tmp=~echo $a awk [print $(NF-1)} # unix探索
# log usage num=~echo ${log usage num tmp%/*]
# 然后判断log使用率是否大于99,如果是则清理
clear_log $log_usage_num
} function main() {
# 主函数,用来调用上面几个方法的
echo "******************** 开始检查日志空间 ********************" >>/tmp/kfc/claren/shellscripts/log_clear_record.log
now_date=$(date "+%Y年%m月%d日 %H:%M:%s") # 记录当前日期
echo "当前日期为:$now_date" >>/tmp/kfc/claren/shellscripts/log_clear_record.log # 记录时间 2022年01月01日 00:00:00# 计算pams的1og大小,然后按需清理
echo "-- 开始检查并清理pams log" >>/tmp/kfc/claren/shellscripts/log_clear_record.log # 2.1 获取pams log路径
access_pams_path
log_path=$pams_path # 清理pams日志
rep_ope_log $log_path $log_usage $log_usage_num
echo "" >>/tmp/kfc/claren/shellscripts/log_clear_record.log
echo "-- 开始检查并清理pmts log" >>/tmp/kfc/claren/shellscripts/log_clear_record.log # 2.1 获取pmts log路径
access_pmts_path
log_path=$pmts_path # 清理pmts日志
rep_ope_log $log_path $log_usage $log_usage_num
echo "**************** 检查并清理结束 ****************>>" /tmp/kfc/claren/shellscripts/log_clear_record.log
echo "" >>/tmp/kfc/claren/shellscripts/log_clear_record.log
} main

  说明:该脚本目前仍旧正常运行中,解决了文件系统涨满后因不及时清理而导致的各种问题。

Shell产出01|定时清日志脚本|Shell的更多相关文章

  1. Linux定时清理日志脚本

    在应用疯狂打日志的情况下,服务器很容易被塞满磁盘. 先要写一个shell脚本,脚本如下. #!/bin/bash #----------------使用规范---------------- #1.该文 ...

  2. 实战:liunx定时清理日志脚本

    参考https://blog.csdn.net/qq_39291929/article/details/79054452 1.需求:我们在 /var/log下面有   EmcsYn.log   和   ...

  3. 自动化处理日志脚本 shell

    自动处理脚本 保留7天的,带详细时间戳, #!/bin/sh #description split logs file1=/var/log/messages file2=/var/log/rabbit ...

  4. Linux 定时清理日志脚本

    在远程运行节点创建一个cleanlog.sh 脚本文件 vin clenalog.sh 插入以下内容 #!/bin/env bash start=$(date +%y-%m-%d-%H%M%m) Fi ...

  5. 【shell脚本】定时备份日志===logBackup.sh

    定时备份日志 设置执行权限 [root@VM_0_10_centos shellScript]# chmod a+x logBackup,sh 脚本内容 [root@VM_0_10_centos sh ...

  6. weblogic每天日志合并shell脚本 [个人记录]【转】【补】

    from RogerZhu modified by King sh logback.rb "/data/logs/" "/tmp/domain" "a ...

  7. shell按日期自动切割nginx日志脚本

    shell按日期自动切割nginx日志脚本 参考:自学it网 http://www.zixue.it/. #nginx日志切割脚本 #author:ce #!/bin/bash #设置日志文件存放目录 ...

  8. Linux - 简明Shell编程01 - 第一个脚本(HelloShell)

    脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash echo "hell ...

  9. Shell - 简明Shell入门01 - 第一个脚本(HelloShell)

    示例脚本及注释 #!/bin/bash echo "hello shell!" # 打印字符串"hello shell!" echo "Date: & ...

  10. Linux 服务器系统监控脚本 Shell【转】

    转自: Linux 服务器系统监控脚本 Shell - 今日头条(www.toutiao.com)http://www.toutiao.com/i6373134402163048961/ 本程序在Ce ...

随机推荐

  1. 【实践篇】领域驱动设计:DDD工程参考架构

    背景 为什么要制定参考工程架构 不同团队落地DDD所采取的应用架构风格可能不同,并没有统一的.标准的DDD工程架构.有些团队可能遵循经典的DDD四层架构,或改进的DDD四层架构,有些团队可能综合考虑分 ...

  2. GitLib详细使用手册(windows系统)

    Git是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理. 对gitlab的常见的使用有建立仓库.提交代码.更新代码.回滚代码.显示/修改日志.拉取分支.解决冲突.设置比 ...

  3. 记一次处理挖矿程序引发的postgres 连接超时

    近一段时间内发现自己的服务器总是警告被挖矿,然处理挖矿程序中也引发了许多其他的问题,也从中学到了其他的知识,趁今天未加班梳理一下便于巩固,记录日常 文章目录 一.查找进程 1.使用 ll /proc/ ...

  4. STM32H5移植zbar记录

    ZBar是一种流行的二维码扫描和解码工具,它在嵌入式系统中拥有广泛的应用.在嵌入式系统中,我们面临着有限的资源和更严格的性能要求,因此,选择适当的库来完成特定的任务非常重要. ZBar适用于各种嵌入式 ...

  5. 代码随想录算法训练营Day31 贪心算法| 122.买卖股票的最佳时机II 55. 跳跃游戏 45.跳跃游戏II

    代码随想录算法训练营 122.买卖股票的最佳时机II 题目链接:122.买卖股票的最佳时机II 给定一个数组,它的第 i个元素是一支给定股票第 i 天的价格. 设计一个算法来计算你所能获取的最大利润. ...

  6. R EnhancedVolcano 绘制火山图

    火山图是用于差异表达分析结果可视化的一种有效方法.今天,我们来介绍一个用于增强火山图绘制的强大 R 包:EnhancedVolcano ,该包拥有强大的绘图功能,用户可以简单的通过设置颜色.形状.大小 ...

  7. VLAN——提高网络性能、安全性和灵活性的利器

    前言 VLAN是Virtual Local Area Network的缩写,它是一种通过网络交换机虚拟划分局域网的技术.VLAN可以将一个物理局域网划分成多个逻辑上的虚拟局域网,各个虚拟局域网之间相互 ...

  8. 手记系列之六 ----- 分享个人使用kafka经验

    前言 本篇文章主要介绍的关于本人从刚工作到现在使用kafka的经验,内容非常多,包含了kafka的常用命令,在生产环境中遇到的一些场景处理,kafka的一些web工具推荐等等.由于kafka这块的记录 ...

  9. A First course in FEM —— matlab代码实现求解传热问题(稳态)

    这篇文章会将FEM全流程走一遍,包括网格.矩阵组装.求解.后处理.内容是大三时的大作业,今天拿出来回顾下. 1. 问题简介 涡轮机叶片需要冷却以提高涡轮的性能和涡轮叶片的寿命.我们现在考虑一个如上图所 ...

  10. Kubernetes(k8s)服务账号Service Accounts

    目录 一.系统环境 二.前言 三.服务账号Service Accounts简介 四.用户账号与服务账号区别 五.服务账号(Service Accounts) 5.1 创建服务账号(Service Ac ...