shell编程tmpwatch

         作为系统管理员,很多时候需要定期清理一定规则的文件,比如过期的日志,过期的归档,已备份的文件等等。

        如果使用一定的匹配规则,找出这些文件,然后再传递给rm命令,其实是有点麻烦的,这时候可以试试tmpwatch。

        tmpwatch

作用:

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

参数:

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

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

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

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

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

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

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

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

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

      参数后加时间,默认是hours。有些文章说可以使用20d表示20天,这个我也见过,但在rhel5.8中,只支持hours。应该需要看版本。

      时间后是要检查的目录。可以多个目录用空格分开。


     了解参数命令后,举一个典型的例子

        tmpwatch -m -x /tmp/ceshi1 -U oracle -v -t  2  /tmp

      以上这个命令删除/tmp目录下超过两个小时没有被更改过且不属于oracle用户的文件,排除/tmp/test1子目录下的文件。显示整个删除过程,只做测试,不整整删除。


linux系统会使用这个命令来定时清理/tmp目录。

下面看下rhel5.8里的/etc/cron.daily/tmpwatch文件。

[root@localhost tmp]# cat /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@localhost tmp]# 

这就是清理规则。懂语法了可以自己学习下。

### 回答1: 在Linux中删除临时文件可以使用以下命令: 1. rm命令:rm命令可以删除文件和目录,使用时需要谨慎,避免误删重要文件。删除单个文件可以使用以下命令: ``` rm filename ``` 删除多个文件可以使用通配符,例如: ``` rm *.tmp ``` 2. find命令:find命令可以查找并删除指定目录下的文件,使用时需要指定目录和文件名模式。例如,删除/tmp目录下所有以.tmp结尾的文件可以使用以下命令: ``` find /tmp -name "*.tmp" -type f -delete ``` 3. tmpwatch命令:tmpwatch命令可以自动删除指定目录下的临时文件,使用时需要指定目录和时间间隔。例如,删除/tmp目录下超过7天未被访问的文件可以使用以下命令: ``` tmpwatch 7 /tmp ``` ### 回答2: Linux是一种类Unix操作系统,因此它也采用了Unix文件系统准则。Linux的文件系统是以文件树结构组织的,每个文件都有其唯一的路径。在Linux上,临时文件是执行过程中暂时存储的文件,如果不及时清理,可能会占用磁盘空间,影响系统性能。 Linux系统提供了多种方式来删除临时文件,以下是一些最常用的方法: 1. 使用rm命令 rm命令是Linux删除文件的常用命令,可以用来删除文件或目录。删除临时文件的最简单方法就是使用rm命令,例如我们可以通过以下命令删除/tmp目录中的所有文件: rm -rf /tmp/* 这会删除/tmp目录下所有的文件和文件夹,包括子目录。 2. 使用find命令 另一种有效的方法是使用find命令,通过特定的选项寻找并删除临时文件,例如我们可以使用以下命令删除3天前的所有以“tmp”为前缀的临时文件: find /tmp -type f -name "tmp*" -mtime +3 -exec rm -f {} \; 这个命令将检索以“tmp”为前缀的所有普通文件,并删除三天前的文件。 3. 自动清除 除了手动删除临时文件之外,Linux系统还提供了自动清理不需要的文件的机制。可以通过配置系统上的cron调度程序在指定时间运行脚本来实现自动清理,例如: 0 0 * * * find /tmp -type f -mtime +1 -delete 这个命令将在每天午夜运行,查找并删除一天前的/tmp目录中的所有文件。 综上所述,Linux删除临时文件的方法有很多种,我们可以根据需要选择合适的方式进行清理,以便保持系统的最佳性能。在删除文件之前,应该确认这些文件是不需要的,并且备份好重要的文件。 ### 回答3: 在Linux系统中,可以使用命令行或者图形界面的方式删除临时文件。下面是使用命令行删除临时文件的具体操作步骤: 1. 打开终端,进入需要删除临时文件的目录。 2. 输入以下命令查看当前目录下的所有文件和文件夹:ls -al。 3. 使用rm命令删除需要删除的临时文件,其中“file name”为需要删除的文件名:rm file name。 4. 输入y或yes,如果需要确认操作。 5. 再次输入ls -al命令查看当前目录下的所有文件和文件夹,确认临时文件已经删除。 需要注意的是,删除临时文件时需要谨慎操作,避免误删系统重要文件。如果不确定需要删除的文件是否为临时文件,可以先将文件备份到其他目录,以便有需要时可以恢复。此外,通常建议定期清理临时文件,以保持系统的顺畅运行。 总的来说,Linux删除临时文件的操作比较简单,但需要注意操作安全和正确性。掌握清理临时文件的方法对于Linux系统的使用和维护都是非常有帮助的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值