删除服务器垃圾文件

Posted Beng Dou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了删除服务器垃圾文件相关的知识,希望对你有一定的参考价值。

    删除日志文件操作在维护测试环境过程中需要经常执行,手工删除文件比较费时。通常来说占用文件系统较多空间的是长期运行的应用用户产生的日志文件和上传或者备份的打包文件。日志文件生成的位置和用户名有相对固定的位置和格式,但是打包备份的大文件是不太能直接确定可以直接删除的。基于这2点考虑,编写脚本实现自动删除无用文件清理出环境空间。

需求描述

  1、日志文件生成路径位于$HOME/log目录下,文件名为‘用户名_[debug|run|warn].log‘或者‘用户名_[debug|run|warn].log.n‘,n为数字,常为备份名。

  2、临时文件生成路径位于$HOME/temp目录,文件名为‘用户名_[debug|run|warn].tmp‘或者‘用户名_[debug|run|warn].tmp.n‘,n为数字,常为备份名。

  3、查找系统中大于指定大小(如100M)的所有文件并输出,供用户手工判断删除。

  4、不能误删系统文件,特别是oracle用户的重做日志文件(redoN.log)。

需求实现

文件名为clearlogs.sh,实现如下:

#!/bin/bash

FILESIZE=100M
if [ $(whoami) != root ];then
  printf "Please execute script on the root user,exit\n"
  exit 1
fi

rm -f user.lst
awk -F: {print $1,$6} /etc/passwd > user.lst

while read user user_home
do
  [ -d ${user_home}/log ] && find ${user_home}/log -maxdepth 2 -type f -name "${user}*.log*" -print0 | xargs -0 rm -f
  [ -d ${user_home}/temp ] && find ${user_home}/temp -maxdepth 2 -type f -name "${user}*.tmp*" -print0 | xargs -0 rm -f  
done < user.lst

rm -f bigfile.lst
printf "Begin find larger than ${FILESIZE} files,wait a moment.....\n"
find / -type f -size +"${FILESIZE}" -print > bigfile.lst
printf "End find the files.\n"
printf "Please check below larger than ${FILESIZE} files and manual delete it.\n"
cat bigfile

#delete temp files
#rm -f user.lst
#rm -f bigfile.lst

  说明:1、脚本可以根据实际情况进行修改以适用当前产品;2、脚本多次运行测试正常后可配置定时任务进行定期清理删除。

 


以上是关于删除服务器垃圾文件的主要内容,如果未能解决你的问题,请参考以下文章

java中的垃圾字符删除

对“xxx”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们。 错误解决一例。(代码片段

苹果MBP垃圾桶出大问题了,要删除的文件进不去?!

linux 垃圾箱是哪个文件??

SAS:从 XML 中删除垃圾数据

删除/移动到垃圾箱时将项目标记为已读