2018-10-05 22:22:00 weixin_33998125 阅读数 281

#问题:如何在Linux系统/tmp目录快速创建1000个目录,目录分别为jfedu1,jfedu2,jfedu3...以此类推,不断增加.

答案:#mkdir jfedu{1..1000}

mkdir jfedu{1..1000}

效果:

 

转载于:https://www.cnblogs.com/Ravenzzz/p/9746176.html

2013-03-01 16:40:53 pankul 阅读数 6809

关于Linux系统中/tmp目录的清除问题

相当悲剧的问题是,之前保存在/tmp目录中的一些数据丢了。现在发现已经是第二次发生了,前一次以为是其他人误操作删除的,今天才发现这个和系统有关系。完全是因为自己不懂Linux系统管理啊 。

系统使用Redhat6.1,估计其他系统也会有。系统会定时的将/tmp目录中不常用的文件清除,这也是为了节约空间。

系统中有一个管理任务计划的文件 /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

其实是调用指令tmpwatch来实现清除文件的功能,看语法知道,30day是清空的执行时间,我们可以尝试修改这个数据。而上面的计划任务文件/etc/cron.daily/tmpwatch是每天启动都会运行一次的。不运行的就不执行。/tmp目录中不用的数据是在开机的时候清除的。


如果不想让tmp目录中的数据被清除呢? 我目前是如下处理的。

将上面的30d改成0d。看起来效果还行吧。


2014-02-20 13:41:49 u010359663 阅读数 256
http://blog.itpub.net/133735/viewspace-773854/


分类: Linux
hadoop 系统datanode 跟tasktracker 的pid 文件被清除了。

于是顺手就看了下、/tmp 目录的清理规则。


linux 的开发规范里没有明确指出/tmp 目录的清理规则,但是指定了,系统必须要有/tmp 目录。

各个发行版本都不一致,大体通行的做法是主机重启就会清空/tmp目录

在linux 的/etc/cron.daily/tmpwatch 里定义了/tmp目录的清理规则,不同的发行版本不一致,但大体都有定制这个定时任务。

01 # vi tmpwatch
02
03 flags=-umc
04 /usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix \
05 -x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix 240 /tmp
06 /usr/sbin/tmpwatch "$flags" 720 /var/tmp
07 for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do
08 if [ -d "$d" ]; then
09 /usr/sbin/tmpwatch "$flags" -f 720 "$d"
10 fi
11 done


根据 man tmpwatch 这个命令就知道了。 会清理30天没有访问的/tmp 目录下面的文件。

还可以根据自己的规则,在里面添加自定义的代码来完成特定的任务。
2017-08-07 17:06:00 lm709409753 阅读数 6370

tmp目录下文件什么时候会删除?

写这篇文章是我要重启长时间运行的hadoop集群的时候,关闭不了相应的服务。查看shell脚本看到,要找到服务的pid文件,才能重启,一般情况下pid文件都会存储在tmp目录下,但是pid文件却不见了

为了保证tmp目录不爆满,系统默认情况下每日会处理一次tmp目录文件,原理就是使用了tmpwatch。

tmpwatch 作用

tmpwatch作用:removes files which haven’t been accessed for a period of time
删除指定的目录中一段时间未访问的文件。

tmpwatch 命令安装

如果不是完全安装,系统中一般不会有tmpwatch的命令,可以手动安装;

yum install tmpwatch

tmpwatch命令参数

语法
tmpwatch [-afqv][--test][超期时间][目录...]
一些tmpwatch参数
-u, --atime 基于访问时间来删除文件,默认的。
-m, --mtime 基于修改时间来删除文件。
-c, --ctime 基于创建时间来删除文件,对于目录,基于mtime。
-M, --dirmtime 删除目录基于目录的修改时间而不是访问时间。
-a, --all 删除所有的文件类型,不只是普通文件,符号链接和目录。
-d, --nodirs 不尝试删除目录,即使是空目录。
-d, --nosymlinks 不尝试删除符号链接。
-f, --force 强制删除。
-q, --quiet 只报告错误信息。
-s, --fuser 如果文件已经是打开状态在删除前,尝试使用“定影”命令。默认不启用。
-t, --test 仅作测试,并不真的删除文件或目录。
-U, --exclude-user=user 不删除属于谁的文件。
-v, --verbose 打印详细信息。
-x, --exclude=path 排除路径,如果路径是一个目录,它包含的所有文件被排除了。如果路径不存在,它必须是一个绝对路径不包含符号链接。
-X, --exclude-pattern=pattern 排除某规则下的路径。

如果系统中已经安装了tmpwatch,在/etc/cron.daily/目录下有一个tmpwatch脚本文件,我电脑中脚本文件的内容如下:

[root@bogon conf]# more /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目录下10天未访问过的文件,同时从指定的目录中递归地搜索并删除指定目录中一段时间未访问的文件。
注:上面的脚本文件是每天的定时任务,如果想删除两小时内未被访问或者修改的文件,不能在这个脚本里面修改,因为这个脚本的执行周期1天。你可以直接使用如下命令去实现“删除 xxx 天没有被访问/修改过的文件”

tmpwatch 20 /tmp/

如果不写单位,默认是小时,上面是删除20小时没有被访问/修改过的文件。

tmpwatch给我们带来的问题?

系统中很多服务的pid的文件都会存放在/tmp目录下,从上面脚本文件可以看到系统会定期删除未被访问的文件,这样就会导致很多服务无法正常关闭等现象。

解决方法

可以使用-U参数,进行排除

-U, --exclude-user=user
              Don't remove files owned by user, which can be an user name or numeric user ID.

具体参数请使用man tmpwatch查看。

Linux系统常见目录

阅读数 121

没有更多推荐了,返回首页