Linux定时删除n天前日志
1、实例命令:
# find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \; find /data/tomcat/logs/ -mtime +30 -name "*.log" -exec rm -rf {} \;
说明:
将/data/tomcat/logs/ 目录下所有30天前带”.log”的文件删除。
如果去掉 -name "*.log" 此参数 表示将目录下所有文件都删除
2、计划任务(升级):
若嫌每次手动执行语句太麻烦,可以将这小语句写到一个可执行shell脚本文件中,再设置cron调度执行,那就可以让系统自动去清理相关文件。
2.1 创建shell:
新建一个可执行文件 auto-del-30-days-ago-log.sh 并分配可运行权限
touch /opt/auto-del-30-days-ago-log.sh chmod +x auto-del-30-days-ago-log.sh
2.2 编辑shell脚本(auto-del-30-days-ago-log.sh):
1、打开编辑器
vi auto-del-30-days-ago-log.sh
2、输入以下内容 -mtime 表示天 -mmin表示分钟 快速删除命令(删除指定目录下120分钟之前的所有文件):find /data/upload/ -mmin +120 -type -f delete;
#!/bin/sh find /data/tomcat/logs/ -mtime +30 -name "*.log" -exec rm -rf {} \;
3、保存退出(:wq!)。
2.3 计划任务:
1、将auto-del-30-days-ago-log.sh执行脚本加入到系统计划任务
#crontab -e
2、设置是每天凌晨0点10分执行auto-del-30-days-ago-log.sh文件进行数据清理:
10 0 * * * /bin/bash /opt/auto-del-30-days-ago-log.sh >/dev/null 2>&1
2.4 启动任务:重启crond:
service crond restart
#centos7 请执行 systemctl restart crond
2.5 瞄一眼是否已经开始任务:
crontab -l
PS: 如果需要查看定时任务执行日志:
cat /var/log/cron
完成以上三步,妈妈再也不用担心我的硬盘空间满了,不用手动清理日志文件了
分类:
Linux
标签:
linux 定时任务 自动删除
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通