linux删除目录tmpab是什么意思_Linux下关于/tmp目录的清理规则

本文将介绍Linux下/tmp目录的清理规则,rhel6和rhel7将以完全不同的两种方式进行清理。

RHEL6

tmpwatch命令

tmpwatch 是专门用于解决“删除 xxx天没有被访问/修改过的文件”这样需求的命令。

安装:

[root@sam01 ~]# yum install tmpwatch.x86_64

使用:

mantmpwatch

tmpwatch- removes files which haven't been accessed for a period of time.

By default, tmpwatch dates files by their atime (accesstime), not their mtime (modification time).

Thetime parameter defines the threshold forremoving files.

If thefile has not been accessed for time, the fileis removed.

Thetime argument is a number with an optional single-character suffix specifying the units: m for minutes, h for hours, d fordays.

If no suffix is specified,time is inhours.-u, --atime

Make the decision about deleting afile based on the file's

atime (access time). This is the default.

Note that the periodic updatedbfilesystem scans keep the

atime of directories recent.-m, --mtime

Make the decision about deleting afile based on the file's

mtime (modification time) instead of the atime.-c, --ctime

Make the decision about deleting afile based on the file's

ctime (inode change time) instead of the atime; fordirecto‐

ries,makethe decision based on the mtime.-M, --dirmtime

Make the decision about deleting a directory based on the

directory's mtime (modification time) instead of the atime;

completely ignore atime for directories.

举例:(清除/tmp目录下30天没有被访问文件)

[root@sam01 ~]# tmpwatch --atime 30d /tmp

RHEL7

systemd-tmpfiles-clean.service服务

服务:systemd-tmpfiles-clean.service

服务何时被执行呢?

Linux下该服务的执行可以根据systemd-tmpfiles-clean.timer进行管理

[root@sam01 ~]# cat /usr/lib/systemd/system/systemd-tmpfiles-clean.timer

# Thisfileis part of systemd.

#

# systemd isfree software; you can redistribute it and/or modify it

# under the terms of the GNU Lesser General Public License as published by

# the Free Software Foundation; either version2.1of the License, or

# (at your option) any later version.

[Unit]

Description=Daily Cleanup of Temporary Directories

Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8)

[Timer]

OnBootSec=15min

OnUnitActiveSec=1d

# OnBootSec 表示相对于机器被启动的时间点

# 表示相对于匹配单元(本标签下Unit=指定的单元)最后一次被启动的时间点

上述配置文件表示两种情况会执行该服务

开机15分钟执行服务

距离上次执行该服务1天后执行服务

服务如何执行呢?

[root@sam01 ~]# cat /usr/lib/systemd/system/systemd-tmpfiles-clean.service

# Thisfileis part of systemd.

#

# systemd isfree software; you can redistribute it and/or modify it

# under the terms of the GNU Lesser General Public License as published by

# the Free Software Foundation; either version2.1of the License, or

# (at your option) any later version.

[Unit]

Description=Cleanup of Temporary Directories

Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8)

DefaultDependencies=no

Conflicts=shutdown.target

After=systemd-readahead-collect.service systemd-readahead-replay.service local-fs.target time-sync.target

Before=shutdown.target

[Service]

Type=oneshot

ExecStart=/usr/bin/systemd-tmpfiles --clean

IOSchedulingClass=idle

# Type=oneshot 这一选项适用于只执行一项任务、随后立即退出的服务

# 命令文件/usr/bin/systemd-tmpfiles

# 命令参数--clean

# 通过定期执行/usr/bin/systemd-tmpfiles --clean 完成清理

命令:/usr/bin/systemd-tmpfiles

[root@sam01 ~]# /usr/bin/systemd-tmpfiles --help

systemd-tmpfiles [OPTIONS...] [CONFIGURATION FILE...]

Creates, deletes and cleans up volatile and temporary files and directories.-h --help Show this help--version Show package version--create Create marked files/directories--clean Clean up marked directories--remove Remove marked files/directories--boot Execute actions only safe at boot--prefix=PATH Only apply rules with the specified prefix--exclude-prefix=PATH Ignore rules with the specified prefix--root=PATH Operate on an alternate filesystem root

#--clean 将会清理被标记的文件目录

哪些目录被标记,又是什么样的标记呢?

定义在配置文件/usr/lib/tmpfiles.d/tmp.conf中

配置文件:/usr/lib/tmpfiles.d/tmp.conf

[root@sam01 ~]# cat /usr/lib/tmpfiles.d/tmp.conf

# Thisfileis part of systemd.

#

# systemd isfree software; you can redistribute it and/or modify it

# under the terms of the GNU Lesser General Public License as published by

# the Free Software Foundation; either version2.1of the License, or

# (at your option) any later version.

# See tmpfiles.d(5) fordetails

# Clear tmp directories separately, tomakethem easier to override

v/tmp 1777root root 10d

v/var/tmp 1777root root 30d

# Exclude namespace mountpoints created with PrivateTmp=yes

x/tmp/systemd-private-%b-*X/tmp/systemd-private-%b-*/tmp

x/var/tmp/systemd-private-%b-*X/var/tmp/systemd-private-%b-*/tmp

x

在根据"寿命"字段清理过期文件时, 忽略指定的路径及该路径下的所有内容。 可以在"路径"字段中使用shell风格的通配符。 注意,这个保护措施对 r 与 R 无效。

X

在根据"寿命"字段清理过期文件时, 仅忽略指定的路径自身而不包括该路径下的其他内容。 可以在"路径"字段中使用shell风格的通配符。 注意,这个保护措施对 r 与 R 无效。

上述配置表示:

清理/tmp目录超过10天的内容,但是匹配/tmp/systemd-private-%b-*的目录及其路径下的全部内容会被保留

清理/var/tmp目录超过30天的内容,但是匹配/var/tmp/systemd-private-%b-*的目录及其路径下的全部内容被保留

总结

RHEL6 根据文件的访问时间等条件使用tmpwatch命令进行/tmp目录的清理,可以使用crond daemon进行定期执行

RHEL7 根据服务systemd-tmpfiles-clean.service 进行临时文件的清理,清理规则定义在配置文件/usr/lib/tmpfiles.d/tmp.conf,调用命令为/usr/bin/systemd-tmpfiles --clean,执行时间依靠systemd-tmpfiles-clean.timer进行管理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值