linux tmp 不自动清理,Linux tmp目录自动清理 及解决方法

Linux系统中/tmp目录下的文件会定期被清理,通常依据最后访问时间(-u)、最后修改时间(-m)等参数。这可能导致HDFS的PID文件被误删,影响服务正常运行。解决方法包括设置HADOOP_PID_DIR到一个不受tmp清理影响的路径,如/data/tmp,并给予适当权限,或者通过调整tmpwatch配置参数来改变清理周期。例如,将清理周期从30天改为7天,以减少误删风险。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Linux系统中/tmp文件夹下的文件是会被清理、删除的,文件清理的规则是如何设定的呢?

在root/tmp文件下

-rw-rw-r-- 1 hadoop hadoop 5 Feb 16 20:56 hadoop-hadoop-datanode.pid

-rw-rw-r-- 1 hadoop hadoop 5 Feb 16 20:56 hadoop-hadoop-namenode.pid

-rw-rw-r-- 1 hadoop hadoop 5 Feb 16 20:57 hadoop-hadoop-secondarynamenode.pid

hdfs在启动的时候回去找pid文件

在pid文件被删除的时候,hdfs是不能被关掉的,如果在启动,他会又重新启动一个,但是不是之前的那个,所以会导致蒙圈了。

Linux在tmp命令 定期删除一些文件和文件夹 30天周期

解决方法一:

[hadoop@hadoop002 hadoop-2.6.0-cdh5.7.0]$ vi /etc/hadoop/hdaoop_env .sh

# The directory where pid files are stored. /tmp by default.

# NOTE: this should be set to a directory that can only be written to by

# the user that will run the hadoop daemons. Otherwise there is the

# potential for a symlink attack.

export HADOOP_PID_DIR=${HADOOP_PID_DIR}

mkdir /data/tmp

chmod -R 777 /data/tmp

export HADOOP_PID_DIR=/data/tmp

为了避免pid文件在tmp中被删除,重新建一个路径/data/tmp,并给他777权限 chmod -R 777 /data/tmp,把pid文件放在这里边就不会被删除了

解决方法二:

配置参数的更改

参数:

-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天。

[root@DB-Server ~]# more /etc/cron.daily/tmpwatch

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_*' 240 /tmp

/usr/sbin/tmpwatch "$flags" 720 /var/tmp

for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do

if [ -d "$d" ]; then

/usr/sbin/tmpwatch "$flags" -f 720 "$d"

fi

done

[root@DB-Server ~]#

如果你想将强制删除30天没有访问的文件改为7天,只需"/usr/sbin/tmpwatch “f l a g s " 720 / v a r / t m p " 和 " / u s r / s b i n / t m p w a t c h " flags" 720 /var/tmp"和"/usr/sbin/tmpwatch "flags"720/var/tmp"和"/usr/sbin/tmpwatch"flags” -f 720 “$d” 里面的720改为189即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值