Linux定时删除日志文件

定时删除app.log开头的日志文件,只保留最近修改的7个文件

一、创建shell脚本

(1)创建执行脚本vim cleanLog.sh

#!/bin/bash
searchPath=/usr/local/tomcat7/logs
cd ${searchPath}
#获取文件总数
declare -i total=`ls app.log.* | wc -l`
#获取要删除的文件总数,保留最近7个
declare -i nums=$total-7
#要删除的总文件数大于1,就删除他们
if [ "${nums}" -ge 1 ];then
	#删除列出的文件
    rm -rf `ls -tr app.log.* | head -${nums}`
fi

(2)为cleanLog.sh加添加执行权限

chmod +x cleanLog.sh

二、使用crontab 定时任务

(1)第一次使用crontab -e,请选择3。如图:
在这里插入图片描述
如果选择错了可能出现无法编辑。crontab -l会出现no crontab for root - using an empty one可以使用命令Select a editor重新选择(或者用select-editor
(2)使用crontab -e命令创建新的定时任务,可以像vim一样编辑文件
每分钟执行一次脚本

* * * * * /usr/local/cleanLog.sh

(3)使用crontab -l命令查看定时任务
(4)service cron restart重启crontab服务使定时任务生效

crontab 其它命令请参考:https://www.runoob.com/w3cnote/linux-crontab-tasks.html

三、出现的问题和解决方案

(1)使用crontab -e保存出现下图的情况
在这里插入图片描述
这是系统提示/var/spool/cron/root文件没有修改的权限。

解决方案:

  • sattr可用来查看文件的属性:
    lsattr /var/spool/cron/root
    如果文件属性中有i与a,或者有其中的一个

  • 可以使用chattr去掉这属性:
    chattr -ia /var/spool/cron/root

  • 再次使用crontab -e就可以了。
    解决方案请参考:https://blog.csdn.net/SweeNeil/article/details/103237214/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值