Liunx下的日志清理shell脚本实战之日志备份
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脚本实战之日志备份相关推荐
- Shell脚本实战:日志关键字监控+自动告警
转载来源: 介绍 该程序使用场景说明:主要用于Linux服务器监控程序日志,如出现关键字异常则触发相应的动作或告警操作,通知到邮件联系人. 一.安装邮件服务 1.解压 tar -jxf mailx-1 ...
- Linux下Shell脚本实战之监测磁盘空间
Linux下Shell脚本实战之监测磁盘空间 一.脚本目的及要求 二.脚本内容 三.运行脚本 一.脚本目的及要求 (1) 监控/home下每各个用户目录的占用磁盘大小 (2) 监控/var/log下前 ...
- Linux下的shell脚本实战之用户创建
Linux下的shell脚本实战之用户创建 一.脚本要求 二.脚本内容 三.运行脚本 一.脚本要求 二.脚本内容 三.运行脚本 一.脚本要求 1.该脚本提示用户创建用户名和密码 2.判断输入的用户名是 ...
- Linux下shell脚本实战之批量新建用户
Linux下shell脚本实战之批量新建用户 一.脚本要求 二.脚本内容 三.运行脚本 一.脚本要求 二.脚本内容 三.运行脚本 一.脚本要求 1.使用提供的user.txt用户列表 2.批量新建us ...
- shell脚本使得nginx日志每天定时切割压缩
Linux下添加shell脚本使得nginx日志每天定时切割压缩 对于nginx的日志文件,特别是access日志,如果我们不做任何处理的话,最后这个文件将会变得非常庞大 这时,无论是出现异常时查日志 ...
- shell 脚本实战 三
摘自 shell脚本实战 第二版 第二章 改进用户命令 脚本14 格式化过长的行 要是够幸运的话,你所用的 Unix 系统中已经包含了 fmt 命令,如果你日常从事文本工作, 那么这个命令非常有用.不 ...
- linux脚本对磁盘分区,shell 脚本实战笔记(4)--linux磁盘分区重新挂载
背景: Hadoop的HDFS文件系统的挂载, 默认指定的文件目录是/mnt/disk{N}. 当运维人员, 不小心把磁盘挂载于其他目录, 比如/mnt/data, /mnt/disk01, /mnt ...
- Shell脚本实战之文件批量创建和修改
Shell脚本实战之文件批量创建和修改 一.脚本要求 二.脚本内容 三.脚本运行结果 一.脚本要求 1.所有操作在/python下 2.批量创建12个以py后缀结尾的文件,文件名中必须包含_hcip, ...
- linux查询日志中页面返回状态码,[linux shell] Shell脚本实现apache日志中的状态码分析...
这篇文章主要介绍了Shell脚本实现apache日志中的状态码分析,本文先是介绍了按天切割日志的方法,然后给出了分析访问状态码的脚本,需要的朋友可以参考下 一.首先将apache日志按天切割 复制代码 ...
最新文章
- python-web自动化-Python+Selenium之expected_conditions:各种判断
- Oracle大数据量分页通用存储过程
- MobaXterm的使用
- 17.4.28 清北第一天水题
- pandas去重函数
- RobHess的SIFT源码分析:综述
- Machine Learning——octave矩阵操作(2)——DAY3
- 计算机在矿山企业中的应用,计算机在矿山工业中的应用与发展
- 帆软报表设计器菜单栏介绍之二文件菜单
- Flutter之Binding简单梳理
- 【Python】@ 操作符
- 2019年1月编程语言排行榜
- 计算机音乐怎么调音速,音频实现变声?学会使用Studio One改变音速
- 信息安全保障人员(CISAW)工控网络安全方向认证介绍
- 2022. 06 青少年机器人技术等级考试理论综合试卷(三级)
- 如何用Python 求函数 y = sinx 在区间[0, pi/2]上的弧长
- JPA设置表名和实体名,表字段与实体字段的对应
- App2sd功能和Asec文件
- NDK_PROJECT_PATH = null问题分析
- php 不刷新页面,点击刷新验证码
热门文章
- #161: 给定n*n由0和1组成的矩阵,如果矩阵的每一行和每一列的1的数量都是偶数,则认为符合条件。 你的任务就是检测矩阵是否符合条件...
- sqlserver日志文件过大的处理方法
- GeneXus 图片的创建与删除1
- SQLITE中原子提交的实现
- 各种汇编器masm masm32 fasm nasm yasm gas的区别
- 【OpenCV入门指南】第五篇 轮廓检测 上
- Linux solr 启动命令,linux – 重启Solr的正确方法是什么
- html中右侧三角形代码,如何使用css在标签的右侧添加一个三角形?
- kafka偏移量保存到mysql里_SparkStreaming+kafka保存offset的偏移量到mysql案例
- python代码怎么设置,如何设置PyCharm中的Python代码模版(推荐)