天天看点

shell脚本定时删除大小超200M的日志文件

作者:94版三国演义

需求

某个服务器的日志文件随着时间的增长越来越多,我不想自己一个个的删除,但是不删除的话,会很麻烦,万一因为日志文件导致内存满了就麻烦了!

实现步骤

1、写好实现的脚本

我要查找>200M的日志文件

find / -type f -size +200M -name "*.log"           
shell脚本定时删除大小超200M的日志文件

2、删除脚本的命令

进入目录 cd /dev

创建文件夹 mkdir sh

进入文件夹 cd sh

创建脚本文件 touch delete_log.sh

编辑脚本文件 vi delete_log.sh

shell脚本定时删除大小超200M的日志文件

内容如下

#!/bin/bash
for name in $(find / -type f -size +100M -name "*.log");do
        rm -rf ${name}
done           
shell脚本定时删除大小超200M的日志文件

在执行脚本之前,我们要看看是否有大小大于100M的日志文件

sudo find / -type f -size +100M -name "*.log"           
shell脚本定时删除大小超200M的日志文件

有三个符合的日志文件;

现在我创建一个定时任务

这个是编辑定时任务

crontab -e           
shell脚本定时删除大小超200M的日志文件
59 13 * * * /dev/sh/delete_log.sh           

当前是13:58 我希望13:59执行一次

等一下把

判断脚本是否有效,就是查看日志文件,刚才符合条件的有三个,如果13:59之后,三个变成0个,那么说明脚本生效

这里有一个插曲,怎么也不起作用,后来发现执行./delete_log.sh

-bash: ./log.sh: Permission denied

我以为是名称的问题,把delete_log.sh改成log.sh也不行,后来发现执行方式不对

sh ./log.sh

shell脚本定时删除大小超200M的日志文件

现在sh脚本起到效果了,哈哈哈哈哈