博客
关于我
linux 脚本 crontab 定时删除清理日志
阅读量:581 次
发布时间:2019-03-11

本文共 1413 字,大约阅读时间需要 4 分钟。

一、构建Linux日志清理脚本

为实现对旧日志文件的自动清理,可以通过以下步骤构建一个自动化脚本:

#!/bin/bash# 找到指定目录下 older than N 天的日志文件并删除它们find /usr/local/tomcat/logs/ -mtime +7 -type f -name "*.log*" -exec rm -rf {} \;

脚本说明:

- `find`:用于在文件系统中查找符合条件的文件。 - `/usr/local/tomcat/logs/`:指定要清理的日志目录。 - `-mtime +7`:表示查找 older than 7 天的文件(注意:-mtime表示更改时间,推荐使用`-atime`或`-dmin`来计算访问时间)。 - `-type f`:限定查找的是文件。 - `-name "*.log*"`:匹配以`.log"`结尾的文件,`*`表示任意字符,`?`表示匹配一个字符。 - `-exec rm -rf {} \;`:执行删除命令,`{}`表示匹配到的文件名,`\;`是批处理命令的结束符。

示例:

```bash# 删除 /usr/local/tomcat/logs/ 目录下 older than 7 天的日志文件find /usr/local/tomcat/logs/ -mtime +7 -name "*.log" -exec rm -rf {} \;```

二、配置定时清理任务

为了实现日志文件的自动清理,可以将脚本设定为定时任务:

  • 脚本执行权限
  • chmod +x del-log.sh
    1. 安装 & 启用 cron 服务
      如果服务器未预装 cron,请安装:
    2. yum install -y vixie-cron
      1. 创建 cron 定时任务
        使用 crontab 命令编辑或添加新任务:

        • 测试用例(每分钟执行一次,建议测试)
        crontab -e*/1 * * * * /usr/local/xiao_sh/auto-del-log.sh >> /dev/null 2>&1
        • 生产环境用例(每天凌晨1点执行)
        crontab -e0 1 * * * /usr/local/xiao_sh/auto-del-log.sh >> /dev/null 2>&1

        三、扩展命令

        对 cron 服务命令有更详细的控制方式:

        • 修改指定用户的 cron 服务
        crontab -u user_name
        • 列出某用户的 cron 任务
        crontab -l
        • 删除某用户的 cron 任务
        crontab -r
        • 编辑用户 cron 文件
        crontab -e
        • 查看 cron 运行状态
        tail -f /var/log/cron

        第四、管理 cron 服务

        通过 systemctl 管理 cron 服务:

        • 启动服务
        bin/systemctl start crond
        • 停止服务
        bin/systemctl stop crond
        • 重启服务
        bin/systemctl restart crond
        • 重新载入服务
        bin/systemctl reload crond
        • 查看服务状态
        bin/systemctl status crond

        建议将 cron 设为开机启动:

        ```bashvi /etc/rc.local/bin/systemctl start crond.service```

    转载地址:http://sqrvz.baihongyu.com/

    你可能感兴趣的文章
    linux获取文件所在目录下,Linux_在Linux系统中获得文件所在目录名的方法,方式一:使用“ dirname“ - phpStudy...
    查看>>
    linux菜单无法编辑,gvim在linux下菜单无法显示问题
    查看>>
    Linux虚拟化网络之vlan配置实战
    查看>>
    Linux虚拟化网络之路由转发实战
    查看>>
    Linux虚拟化网络之链路聚合实战
    查看>>
    Linux虚拟机NAT模式设置静态IP并且能上网的设置方法
    查看>>
    Linux虚拟机上安装redis
    查看>>
    linux虚拟机配置静态网络,解决centos7网络异常,ping不通
    查看>>
    Linux虚拟网络设备—Veth Pair
    查看>>
    linux解压缩命令之unzip,tar(持续更新)
    查看>>
    linux解析core文件都是问号,gdb core文件函数出现问号
    查看>>
    linux设备共享,Linux中的存储设备共享之target
    查看>>
    Linux设备模型(5)_device和device driver
    查看>>
    Linux设备驱动开发学习(4):字符设备驱动(未完)
    查看>>
    linux设置时区和自动同步时间
    查看>>
    Linux语言配置
    查看>>
    Linux课题实践四——ELF文件格式分析
    查看>>
    Linux调优工具tuned
    查看>>
    Linux调度器 - 进程优先级
    查看>>
    Linux负载CPU、内存、磁盘IO、网络IO状态分析详解
    查看>>