linux定时删除某文件(保留最新的三个)

本文介绍了一个bash脚本,用于定期删除指定目录下的.war文件,只保留最新三个,以释放磁盘空间。同时,展示了如何设置cron定时任务在每周六18点执行该脚本并记录日志。只需替换文件类型和目录,此脚本同样适用于其他类型的临时文件管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录

前言

经常遇到服务器的某个目录下的某种文件太多,占用太多磁盘空间,于是就写一个脚本 定时都删除 某种文件 只保留最新的三个

脚本如下

vim delete.sh

#!/bin/bash

#保留文件数
ReservedNum=3
#删除文件的目录
FileDir=/apps/ca-studio
#日期
date=$(date "+%Y%m%d-%H%M%S")
#统计现有多少个.war的文件
FileNum=$(find $FileDir -name "*.war" | xargs ls -alt | wc -l)
#当现有文件数>保留文件数
while(( $FileNum > $ReservedNum))
do
    OldFile=$(find $FileDir -name "*.war" | xargs ls -alrt | head -1)      #找到旧文件名
    echo  $date "Delete File:"$OldFile       #输出格式
    rm -rf $FileDir/$OldFile        #删除最旧的.war文件
    let "FileNum--"    #重复以上步骤(因为每次只删掉一个)直到只剩下3个最新的
done

然后设置定时任务

chmod +x delete.sh #添加执行权限
crontab -e #编辑定时任务
0 18 * * 0 脚本路径 >> /root/delete.log 2>&1
#每周末晚上18点执行并写日志

如果你需要定时删掉什么tmp、gz、log等只需要替换脚本里面的.war 和这些文件存在的目录即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值