• Linux tmp目录自动清理总结


    在Linux系统中/tmp文件夹下的文件是会被清理、删除的,文件清理的规则是如何设定的呢? 以Redhat为例,这个主要是因为作业里面会调用tmpwatch命令删除那些一段时间没有访问的文件。

    其实tmpwatch是一个命令或者说是一个包。

     关于tmpwatch命令的参数,不同版本可能有所不同。

    作用:

    删除一段时间没有被访问的文件。

    参数:

    -u 按照文件的最后access时间,即最后访问时间为参考。默认选项。可通过ls -lu查看。

    -m 按照文件的最后modified时间,即最后修改时间为参考。可通过ls -l查看。

    -c 按照文件的-ctime时间做参考,ctime更新的条件为写入、更改属主、权限。可通过ls -lc查看。

    -M 按照目录的修改时间来删除目录而不是访问时间。

    -a 删除所有类型文件。包括目录和symbolic links

    -d --nodirs 排除目录文件,即使是空目录。

    -d --nosysmlinks 排除symbolic links类型文件。

    -f 强制删除那些root没有写权限的文件。比如root的readonly文件

    -q 只报告错误信息。

    -x /PATH 排除特定目录,即不删除该子目录里的文件。

    -U user_name 排除属于特定用户的文件,即不删除该用户的文件。

    -v 显示删除过程。默认是不显示删除了什么文件,直接删除的。

    -t 用于测试,并不真正删除文件,能显示出要删除文件的过程。

    -d 不删除文件里的子目录,但是子目录里面的文件还是会被删除。

    参数后加时间,默认是hours。也可以使用30d表示30天,但是有些版本只支持hours。 时间后是要检查的目录。可以多个目录用空格分开。如下所示表示720小时~=30天。

    more /etc/cron.daily/tmpwatch

    如果想将强制删除30天没有访问的文件改为7天,只需"/usr/sbin/tmpwatch "$flags" 720 /var/tmp"和"/usr/sbin/tmpwatch "$flags" -f 720 "$d" 里面的720改为189即可。

    若因某些程序需要在/tmp目录下生成临时文件,但因/tmp目录空间不足导致程序运行异常,此时需手动对/tmp下文件进行清理

    手动清理:

    新建文件夹/root/tmplog,创建tmpwatch.sh脚本

    添加定时任务(每5小时执行一次)

    crontab -e

    * */5 * * * sh /root/tmplog/tmpwatch.sh

    程序运行后会自动生成tmp.log日志文件

    查看删除条数:cat tmp.log|wc -l

  • 相关阅读:
    Linux下解析域名命令-dig 命令使用详解
    重写、覆盖、重载、多态几个概念的区别分析
    介绍python中运算符优先级
    介绍Python中6个序列的内置类型
    Mysql(Mariadb)数据库主从复制
    winscp中使用sudo的方法
    git push跳过用户名和密码认证配置教程
    案例:通过shell脚本实现mysql数据备份与清理
    毕业季,我的Linux求职之路
    PHP和ajax详解
  • 原文地址:https://www.cnblogs.com/pistachio123/p/15827440.html
Copyright © 2020-2023  润新知