Liunx下的日志清理shell脚本实战

  • 一、脚本实现功能以及要求
  • 二、shell脚本内容

一、脚本实现功能以及要求

二、shell脚本内容

一、脚本实现功能以及要求
1.日志备份目录,将日志备份到/mnt/backup/log中,达到即使系统重启,日志不会丢失的效果。
2.设置备份目录的最大容量。例如设置500M,超过这个大小,程序将不断最旧的备份日志删除,直到可以容纳新日志。
3.白名单功能。不重要的日志无需备份,直接删除,重要日志定期备份。
4.日志文件格式,新鲜的日志以log结尾,且在白名单的重要日志打上时间戳。
5.程序行为,程序每隔10秒扫描一次/var/log 下最新日志,如果超过5M大小,且在白名单中,将其备份,原日志删除;不在白名单中,直接删除。检查备份目录是否超过了备份目录的最大容量,如果超过,则会将最老的日志备份删除。

二、脚本内容

#!/bin/bash
##########################################################
#File Name:backup_log.sh
#Version:V1.0
#Aurhor:IT
#Emali:
#Created Time:2021-04-28 11:45:14
#Description:  backup log
###########################################################maximum log size
alarmrate=500
#the max size file can reach
file_max_size=5
#sourece log directory
log_ram_dir=/var/log
#backup log directory
working_dir=/mnt/backup/log
#This is the frequency our program runs
SLEEPTIME=5#Append YEAR.MONTH.DAY and timestamp to log file
{
timestamp=$(date +%Y%m%d%H%M%S)
RETVAL=$1.$timestamp
}#search dir to fetch the oldest log
#寻找最旧的日志文件
searchdir ()
{oldestlog=$(ls -rt|head -n 1 |awk '{print $1}')
}#clear old log
#删除工作目录下的旧日志clear_old_log_under_working_dir ()
{cd $working_dirwhile true;dologsize=$(du -ms $working_dir |awk '{print $1}')if [ $logsize -gt $alarmrate ];thensearchdirrm -rf $oldestlogelsebreak;fidone
}#this is the main process of our log backup activity
#主备份程序backuplog_process ()
{cd $log_ram_dirfor i in * ; dofile_size=$(du -ms $i |awk '{print $1}')case $i inerror.* | mail* | cron* | message* | last* | cpu* | lpr* | dnf* | boot* | hawkey.log )if [ ! -d $workding_dir ];thenmkdir -p $working_dirfiif [ $file_size -gt $file_max_size ];thenfilenameConvert $icp -p $log_ram_dir/$i $working_dir/$RETVELecho "" > $log_ram_dir/$iclear_old_log_under_working_dirfi;;*)if [ $file_size -gt $file_max_size ];thenecho "" > $log_ram_dir/$ifiesac
done
}#SLEEPTIME=5#while true ; do
#backuplog_process
#sleep $SLEEPTIME
#doneexit 20

Liunx下的日志清理shell脚本实战之日志备份相关推荐

  1. Shell脚本实战:日志关键字监控+自动告警

    转载来源: 介绍 该程序使用场景说明:主要用于Linux服务器监控程序日志,如出现关键字异常则触发相应的动作或告警操作,通知到邮件联系人. 一.安装邮件服务 1.解压 tar -jxf mailx-1 ...

  2. Linux下Shell脚本实战之监测磁盘空间

    Linux下Shell脚本实战之监测磁盘空间 一.脚本目的及要求 二.脚本内容 三.运行脚本 一.脚本目的及要求 (1) 监控/home下每各个用户目录的占用磁盘大小 (2) 监控/var/log下前 ...

  3. Linux下的shell脚本实战之用户创建

    Linux下的shell脚本实战之用户创建 一.脚本要求 二.脚本内容 三.运行脚本 一.脚本要求 二.脚本内容 三.运行脚本 一.脚本要求 1.该脚本提示用户创建用户名和密码 2.判断输入的用户名是 ...

  4. Linux下shell脚本实战之批量新建用户

    Linux下shell脚本实战之批量新建用户 一.脚本要求 二.脚本内容 三.运行脚本 一.脚本要求 二.脚本内容 三.运行脚本 一.脚本要求 1.使用提供的user.txt用户列表 2.批量新建us ...

  5. shell脚本使得nginx日志每天定时切割压缩

    Linux下添加shell脚本使得nginx日志每天定时切割压缩 对于nginx的日志文件,特别是access日志,如果我们不做任何处理的话,最后这个文件将会变得非常庞大 这时,无论是出现异常时查日志 ...

  6. shell 脚本实战 三

    摘自 shell脚本实战 第二版 第二章 改进用户命令 脚本14 格式化过长的行 要是够幸运的话,你所用的 Unix 系统中已经包含了 fmt 命令,如果你日常从事文本工作, 那么这个命令非常有用.不 ...

  7. linux脚本对磁盘分区,shell 脚本实战笔记(4)--linux磁盘分区重新挂载

    背景: Hadoop的HDFS文件系统的挂载, 默认指定的文件目录是/mnt/disk{N}. 当运维人员, 不小心把磁盘挂载于其他目录, 比如/mnt/data, /mnt/disk01, /mnt ...

  8. Shell脚本实战之文件批量创建和修改

    Shell脚本实战之文件批量创建和修改 一.脚本要求 二.脚本内容 三.脚本运行结果 一.脚本要求 1.所有操作在/python下 2.批量创建12个以py后缀结尾的文件,文件名中必须包含_hcip, ...

  9. linux查询日志中页面返回状态码,[linux shell] Shell脚本实现apache日志中的状态码分析...

    这篇文章主要介绍了Shell脚本实现apache日志中的状态码分析,本文先是介绍了按天切割日志的方法,然后给出了分析访问状态码的脚本,需要的朋友可以参考下 一.首先将apache日志按天切割 复制代码 ...

最新文章

  1. python-web自动化-Python+Selenium之expected_conditions:各种判断
  2. Oracle大数据量分页通用存储过程
  3. MobaXterm的使用
  4. 17.4.28 清北第一天水题
  5. pandas去重函数
  6. RobHess的SIFT源码分析:综述
  7. Machine Learning——octave矩阵操作(2)——DAY3
  8. 计算机在矿山企业中的应用,计算机在矿山工业中的应用与发展
  9. 帆软报表设计器菜单栏介绍之二文件菜单
  10. Flutter之Binding简单梳理
  11. 【Python】@ 操作符
  12. 2019年1月编程语言排行榜
  13. 计算机音乐怎么调音速,音频实现变声?学会使用Studio One改变音速
  14. 信息安全保障人员(CISAW)工控网络安全方向认证介绍
  15. 2022. 06 青少年机器人技术等级考试理论综合试卷(三级)
  16. 如何用Python 求函数 y = sinx 在区间[0, pi/2]上的弧长
  17. JPA设置表名和实体名,表字段与实体字段的对应
  18. App2sd功能和Asec文件
  19. NDK_PROJECT_PATH = null问题分析
  20. php 不刷新页面,点击刷新验证码

热门文章

  1. #161: 给定n*n由0和1组成的矩阵,如果矩阵的每一行和每一列的1的数量都是偶数,则认为符合条件。 你的任务就是检测矩阵是否符合条件...
  2. sqlserver日志文件过大的处理方法
  3. GeneXus 图片的创建与删除1
  4. SQLITE中原子提交的实现
  5. 各种汇编器masm masm32 fasm nasm yasm gas的区别
  6. 【OpenCV入门指南】第五篇 轮廓检测 上
  7. Linux solr 启动命令,linux – 重启Solr的正确方法是什么
  8. html中右侧三角形代码,如何使用css在标签的右侧添加一个三角形?
  9. kafka偏移量保存到mysql里_SparkStreaming+kafka保存offset的偏移量到mysql案例
  10. python代码怎么设置,如何设置PyCharm中的Python代码模版(推荐)