用shell+crontab定时清理日志

发布时间:2024-11-25 18:11

Linux操作系统:理解命令行,学会使用Shell脚本 #生活技巧# #工作学习技巧# #编程语言学习路径#

最新推荐文章于 2023-10-08 15:52:10 发布

yu36yuqing 于 2018-07-29 12:29:12 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

背景简介

每小时扫描指定日志目录,文件超过100M后直接清空处理,作为运维的一个临时手段使用。

源码主要由两个函数构成: reviewLogs() 判断日志大小,并做清空处理;getdir() 判断是目录还是文件,如果是目录则进行迭代查找; 使用方法: 在~/folder_sj目录(自行重命名,shell源码中也要做同名替换)下新建review_logs.sh并贴入源码shell源码倒数第3行,配置需要扫描的路径,目录中所有的文件都会被扫描和处理,请注意不止是*.logreviewLogs()函数中 if [ $filesizeM -gt 100 ] 中的100是文件大小,单位是M,数值根据需要修改即可配置完成后查看日志是否定时输出,日志所在路径是
LOG=~/folder_sj/review_logs_${TIMESTAMP}.log。 Shell源码

#!/bin/bash TIMESTAMP=`date +%Y%m` LOG=~/folder_sj/review_logs_${TIMESTAMP}.log echo "Start to review all log files at `date`." >>${LOG} function reviewLogs(){ filename=$1 filesize=`ls -l $filename | awk '{ print $5 }'` filesizeM=`echo "sclae=2; $filesize/1024/1024" | bc` if [ $filesizeM -gt 100 ] then echo "$filename is too bigger!!" >>${LOG} echo '' > $filename filesize1=`ls -l $filename | awk '{ print $5 }'` filesizeM1=`echo "sclae=2; $filesize1/1024/1024" | bc` echo "now the file size is ${filesizeM1} !!" >>${LOG} echo "===========================" >>${LOG} fi } function getdir(){ for element in `ls $1` do dir_or_file=$1"/"$element if [ -d $dir_or_file ] then getdir $dir_or_file else reviewLogs $dir_or_file fi done } getdir '/opt/apache-tomcat-7.0.70_app/logs' echo "Stop to review all log files at `date`." >>${LOG} echo "============================================================================" >>${LOG}

123456789101112131415161718192021222324252627282930313233343536373839 Crontab配置源码

# /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `crontab' # command to install the new version when you edit this file # and files in /etc/cron.d. These files also have username fields, # that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command 00 */1 * * * root /root/folder_sj/review_logs.sh1234567891011

网址:用shell+crontab定时清理日志 https://www.yuejiaxmz.com/news/view/271026

相关内容

这些 Linux 的“自动化”技巧,教你轻松完成任务
如何在Linux上自动化任务
计划任务管理
shell整理(28)===找规律写shell
如何进行常见的linux自动化任务
Linux 基础 之 延迟&定时 命令 和 清理临时文件
轻松学习Linux之自动执行任务
【Linux自动化任务构建】
Linux自动化任务
打造高效的工作环境 – SHELL 篇

随便看看