linux 定期清除日志

1. 方法

  1. 定义清除日志目录的shell 脚本
  2. 启动linux crontab 定时任务执行脚本
  3. 该测试时在root 用户下进行的测试

2. 定义shell脚本

2.1 脚本

2.1.1 config

logPath=/root/clean-log/logs/clean.log
paths=(
"/root/xxxx-console/logs"
"/root/xx-console/logs"
)

logPath定义打印日志的位置
paths定义删除日志路径数组

2.1.2 clean.sh

#! /bin/bash
source config
echo start clean... >> $logPath

for element in ${paths[@]} 
do
	starttime=$(date +%Y-%m-%d\ %H:%M:%S)
	echo [$starttime]:$element >> $logPath
	chmod -R 777 $element
	filelist=$(ls $element)
	for file in $filelist
	do
		if  [ -f $element/$file ]
		then 
			suffix=`echo ${file##*.}`
			if [ $suffix == "log" ]
			then 
				echo " " > $element/$file
			fi
		fi
		
		
	done
	#rm -f $element/*
done
	
echo end clean... >> $logPath

2.1 说明

  • 修改 source config 为具体绝对路径 (source /root/clean-log/config)
  • 循环遍历数组并且授权chmod -R 777 $element
  • 循环遍历文件夹下的文件,判断为文件后缀为log,清空文件内容
  • ps: 清空而非删除文件,因为有些项目删除文件后就不再生成文件.导致后续日志无法监控

3. 定义定时任务

3.1 脚本

3.1.1 clean.crontab

0 2 * * * /root/clean-log/clean.sh

3.2 说明

  • 0 2 * * * 为定义crontab 的周期 为每天凌晨02:00 执行 /root/clean-log/clean.sh
  • 详细可以看Linux 定时任务

3.3 启动定时任务

crontab clean.crontab

3.4 关闭定时任务

  1. crontab -r ps: crontab -r 是关闭当前用户所有的定时任务.慎用
  2. crontab -e 会打开编辑窗口,把想要删除的定时任务删掉即可

附件

下载

欢迎留言交流

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值