IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux设置定时任务去清除日志文件,在磁盘使用率达到80%以上时 -> 正文阅读

[系统运维]Linux设置定时任务去清除日志文件,在磁盘使用率达到80%以上时

作者:language-bash

目录

1、背景:

2、需求:Linux系统设置定时任务,去清理掉日志文件

设计思路:

3、开发shell脚本:

4、配置cron定时任务配置


1、背景:

在项目上线之后,应用程序就会运行起来,应用程序运行的过程会产生大量的日志,这时候日志文件所占的空间就会非常的巨大,这样会导致空间使用率非常大,这样会有宕机或者是应用程序停止运行的风险存在的,这里时候我们就需要去清理掉日志文件了来释放空间,从而降低宕机或者程序停止运行的风险。但是清理文件的动作是一个重复的操作,同时也是要求实时性非常高,但是日常的工作想做到实时性处理,这个是有难度的,得不到100%的保证,这时候就需要一个定时任务来实现这个动作,从而提升运维工作的质量,减少人工运维的工作量,如下就是介绍设置定时任务来清理日志文件。


2、需求:Linux系统设置定时任务,去清理掉日志文件

条件一:每天在晚上凌晨12点去清理掉7天前的日志文件;

条件二:如果日志文件所在的磁盘的空间使用率到达了80%以上清理掉3天之前的日志文件;

条件三:清理日志文件需包含业务日志,启动日志、错误日志等;


设计思路:

1、首先在Linux上设置定时任务的,所以我们需要采用cron工具;

2、需求是包含了多个条件的,并且存在判断的条件,所以需要利用shell脚本来实现;

3、清理的日志文件是根据时间来判断的需要利用到find命令来实现;


3、开发shell脚本:

1、撰写shell脚本:

[root@tomcat ~]# cat del_log.sh 
#!/bin/bash
#author:jiang
#time: 2022/04/15
#mtime: 2022/04/15

#函数
#空间使用率不超过80的操作
find_1 () {
find /tomcat/logs/ -mtime +7 -name "server*error.log" -exec rm -f {} \;
find /tomcat/logs/ -mtime +7 -name "catalina.out.log" -exec rm -f {} \;
find /tomcat/logs/ -mtime +7 -name "access_log.*.txt" -exec rm -f {} \;
find /tomcat/bin/ -mtime +7 -name "server01.log.*" -exec rm -f {} \;
}
#空间使用率超过了80%的操作
find_2 () {
find /tomcat/logs/ -mtime +3 -name "server*error.log" -exec rm -f {} \;
find /tomcat/logs/ -mtime +3 -name "catalina.out.log" -exec rm -f {} \;
find /tomcat/logs/ -mtime +3 -name "access_log.*.txt" -exec rm -f {} \;
find /tomcat/bin/ -mtime +3 -name "server01.log.*" -exec rm -f {} \;
}

#获取磁盘的空间大小
use=`df -h / | head -2 | tail -1 | awk -F" " '{print $5}' | awk -F% '{print $1}'`
#进行数值的判断
if [ $use -gt 80 ]
then
#执行操作
    find_2    
else
    find_1
fi

2、测试校验shell脚本语法是否有问题

[root@tomcat ~]# bash -x del_log.sh 
++ head -2
++ tail -1
++ df -h /
++ awk '-F ' '{print $5}'
++ awk -F% '{print $1}'
+ use=81
+ '[' 81 -gt 80 ']'
+ find_2
+ find /tomcat/logs/ -mtime +3 -name 'server*error.log' -exec rm -f '{}' ';'
+ find /tomcat/logs/ -mtime +3 -name catalina.out.log -exec rm -f '{}' ';'
+ find /tomcat/logs/ -mtime +3 -name 'access_log.*.txt' -exec rm -f '{}' ';'
+ find /tomcat/bin/ -mtime +3 -name 'server01.log.*' -exec rm -f '{}' ';'

执行没有报错说明shell语法是没有问题的。


4、配置cron定时任务配置

[root@tomcat ~]# crontab -l
01 00 * * * /bin/sh /root/del_log.sh

?配置文件之后就完成了,就等到时间进行验证了,如果正常使用之前可以修改时间进行验证的,这里就不具体描述了。


总结:如上就是日常工作需要配置定时任务去自动清理掉日志文件的场景,希望可以帮助大家,脚本的设计思路可以借鉴的。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-22 19:19:35  更:2022-04-22 19:22:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:41:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码