当前位置: 首页 > 编程笔记 >

Linux自动删除n天前日志及实例命令

东郭宏深
2023-03-14
本文向大家介绍Linux自动删除n天前日志及实例命令,包括了Linux自动删除n天前日志及实例命令的使用技巧和注意事项,需要的朋友参考一下

1.删除文件命令:

find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \;

实例命令:

find /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} \;

说明:

将/opt/soft/log/目录下所有30天前带".log"的文件删除。具体参数说明如下:

find:linux的查找命令,用户查找指定条件的文件;

/opt/soft/log/:想要进行清理的任意目录;

-mtime:标准语句写法;

+30:查找30天前的文件,这里用数字代表天数;

"*.log":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件,这个可以灵活运用,举一反三;

-exec:固定写法;

rm -rf:强制删除文件,包括目录;

{} \; :固定写法,一对大括号+空格+\+;

2.计划任务:

若嫌每次手动执行语句太麻烦,可以将这小语句写到一个可执行shell脚本文件中,再设置cron调度执行,那就可以让系统自动去清理相关文件。

2.1创建shell:

touch /opt/soft/bin/auto-del-30-days-ago-log.sh
chmod +x auto-del-30-days-ago-log.sh

新建一个可执行文件auto-del-30-days-ago-log.sh,并分配可运行权限

2.2编辑shell脚本:

vi auto-del-30-days-ago-log.sh

编辑auto-del-30-days-ago-log.sh文件如下:

#!/bin/sh
find /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} \;

ok,保存退出(:wq)。

2.3计划任务:

#crontab -e

将auto-del-30-days-ago-log.sh执行脚本加入到系统计划任务,到点自动执行

输入:

10 0 * * * /opt/soft/log/auto-del-7-days-ago-log.sh >/dev/null 2>&1

这里的设置是每天凌晨0点10分执行auto-del-7-days-ago-log.sh文件进行数据清理任务了。

完成以上三步,你就再也不每天惦记是否硬盘空间满了,该清理日志文件了,再也不会受到服务器硬盘空间不足的报警信息了,放心的去看书喝咖啡去吧!

每次添加完任务后,一定记得重新启动crond服务,不然不会生效

代码如下: 

service crond restart

创建你的第一个Shell脚本

1.写一个脚本

a) 用touch命令创建一个文件:touch my_script

b) 用vim编辑器打开my_script文件:vi my_script

c) 用vim编辑器编辑my_script文件,内容如下:

#!/bin/bash           告诉shell使用什么程序解释脚本
#My first script
ls -l .*

2.允许Shell执行它

chmod 755 my_script

 

3.执行my_script脚本

./my_script

总结

以上所述是小编给大家介绍的Linux自动删除n天前日志,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 我有这样的数据结构: Employees(集合)>{EmployeeID}(文档)>Chat(集合)>{ChatId}(文档)。 我真的找了很多这个,但它真的很难。请帮帮我.

  • 本文向大家介绍Shell+Linux命令实现日志分析,包括了Shell+Linux命令实现日志分析的使用技巧和注意事项,需要的朋友参考一下 一、列出当天访问次数最多的IP 命令: 原理:        最后打印的结果大概是这样: 以下是其他一些分析日志的shell用法: 1、查看当天有多少个IP访问: 2、查看某一个页面被访问的次数; 3、查看每一个IP访问了多少个页面: 4、将每个IP访问的页面

  • 本文向大家介绍Linux定时删除日志的简单实现方法,包括了Linux定时删除日志的简单实现方法的使用技巧和注意事项,需要的朋友参考一下 导语 linux是一个很能自动产生文件的系统,日志、邮件、备份等。虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,让系统定时清理一些不需要的文件很有一种爽快的事情。 项目中会生成各种各样的日志,随着时间的推移,日志也是越来越多。超过一定时间的日志就没有了参

  • 本文向大家介绍linux lsof命令详解及实例,包括了linux lsof命令详解及实例的使用技巧和注意事项,需要的朋友参考一下 linux lsof命令详解 简介 lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议

  • 本文向大家介绍nginx日志按天生成和定期删除日志的方法,包括了nginx日志按天生成和定期删除日志的方法的使用技巧和注意事项,需要的朋友参考一下 问题:nginx会按照nginx.conf的配置生成access.log和error.log,随着访问量的增长,日志文件会越来越大,既会影响访问的速度(写入日志时间延长),也会增加查找日志的难度,nginx没有这种按天或更细粒度生成日志的机制。所以下面

  • 我在db_config中的设置: 但是日志文件仍然存在-即使我将检查点设置降低到。如果我在data目录中运行,那么除了最后一个文件之外,所有这些文件都将被删除。 有人知道如何让自动移除工作吗?我几乎放弃了,并添加了一个cron作业,以便在迁移期间运行。但我不确定这是否会引起问题。 我们在CentOS上使用带有BDB后端(准确地说是HDB)的OpenLDAP2.3.43。