• 如何用 tmpwatch 删除某个目录下的特定文件


    tmpwatch 是一个很好用的命令,centos 6 等系统一般自带,但 centos 7 开始 tmpwath 被 systemd 的 tmpfiles.d 下的 *.conf 文件来替换,有兴趣的可以去研究,这里先讲一下 tmpwatch ,它可以在某种情况下很好的替代 cron 与 find, rm -rf /dir 配合使用来删除文件的方式。

    比如,我们假设有一个目录 /data/mesos/chen_log,下面有很多文件类似于 xxx.log.xxx.INFO.xxx, xxx.log.xxx.ERROR.xxx, xxx.log.xxx.WARNING.xxx 等文件且这些文件的 mtime 也不一样,有些可能是2个星期前的,有些是之后的,假设,我们每一天都定时删除该目录下2个星期前的 INFO 文件,我们可以用 cron + find ,rm -rf /dir 的方式实现。

    0 1 * * * bash -c 'cd /data/mesos/chen_log && find . -mtime +14 -type f -name "*INFO*" -exec rm -f {} ; >/dev/null

    但如果用 tmpwatch 则可以如下:

    /usr/sbin/tmpwatch -m 14d -d /data/mesos/chen_log -lf -X/data/mesos/chen_log/*WARNING* -X/data/mesos/chen_log/*ERROR* -X/data/mesos/chen_log/*FATAL*

    或者配合 awk ,则更简洁

    /usr/sbin/tmpwatch -m 14d -d /data/mesos/chen_log -t | awk '/INFO/ { print $NF }' | xargs /bin/rm -f

    并将其取名 my-tmpwatch 放置在 /etc/cron.daily/ 下面,让系统每天都定时执行一次。

    注意在 ubuntu 等系统中会从 cat /etc/crontab 看到。
    但 centos 7 中放在 cat /etc/anacrontab 下执行。但都会被系统启动,不需要额外添加 cron 定时执行任务。

  • 相关阅读:
    数据结构C语言实现----直接插入排序
    c++primer笔记十六、模板与泛型编程
    c++primer笔记十五、面向对象程序设计
    c++primer笔记十四、重载运算和类型转换
    c++primer笔记十三、拷贝控制
    c++primer笔记十二、动态内存
    c++primer笔记十一、关联容器
    c++primer笔记十、泛型算法
    c++primer笔记九、顺序容器
    c++primer笔记八、 IO
  • 原文地址:https://www.cnblogs.com/qianggezhishen/p/7349345.html
Copyright © 2020-2023  润新知