Linux下关于/tmp目录的清理规则和OOM机制

1.Linux的OOM机制

在linux中如果某个进程占用了很大的内存,会导致进程被kill掉。
如果发现进程被莫名的kill掉,可以去查看messages日志cat /var/log/messages
Jul 27 13:29:54 kernel: Out of memory: Kill process 17982 (java) score 77 or sacrifice child发现的确是oom了。
解决办法:
1,限制java进程的max heap,从而降低内存使用
2,发现系统没有开启swap,给系统加swap空间(内存数*2)

2.linux的/tmp清理机制

在Linux系统中/tmp文件夹里是存放临时文件的,在一定的时间内会被清理。默认是30天
/etc/cron.daily/tmpwatch这个文件的作用就是删除/tmp目录下非规则且没有访问的文件文件夹.
文件内容如下:

[hadoop@Hadoop001 hadoop]$ cat /etc/cron.daily/tmpwatch
#! /bin/sh
flags=-umc
/usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix \
        -x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix \
        -X '/tmp/hsperfdata_*' 10d /tmp
/usr/sbin/tmpwatch "$flags" 30d /var/tmp
for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do
    if [ -d "$d" ]; then
        /usr/sbin/tmpwatch "$flags" -f 30d "$d"
    fi
done

第一行相当于一个标记(参数);
第二行就是针对/tmp目录里面排除的目录
第三行,这是对这个/tmp目录的清理,下面的是针对其他目录的清理。
在红色部分附近/usr/sbin/tmpwatch "$flags" 30d /var/tmp这一行
红色的表示30天的意思,这个就决定了30天清理/tmp下不访问的文件。
你想一天一清理的话,就把这个30d改成1d。
但有个问题需要注意,如果你设置更短的时间来清理的话,比如说是30分钟、10秒等等,
但你会发现重新电脑,这个并无效他不清理/tmp文件夹里面的内容,
因为tmpwatch的上层目录是/etc/cron.daily/,而这个目录是一天执行一次计划
任务,所以说,你设置了比一天更短的时间,他就不起作用了。
所以,在Centos6中,系统自动清理/tmp文件夹的默认时限是30天

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 观其大纲 第1部分Linux的基础知识第1章Linux概述第2章Linux系统的安装KickStart开始自动安装...
    周少言阅读 1,551评论 1 10
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,883评论 0 10
  • Linux习惯问题: 在vim编辑时,按了ctrl + s后,再按ctrl + q就可以继续执行了。ctrl + ...
    光着脚的鞋阅读 4,553评论 0 16
  • 1、第八章 Samba服务器2、第八章 NFS服务器3、第十章 Linux下DNS服务器配站点,域名解析概念命令:...
    哈熝少主阅读 3,796评论 0 10
  • 进程相关概念系统进程管理工具任务计划 一、进程相关概念 定义:进程(Process)是运行中的程序的一个副本,是被...
    哈喽别样阅读 606评论 0 0