码迷,mamicode.com
首页 > 其他好文 > 详细

删除服务器垃圾文件

时间:2017-09-17 18:50:47      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:需要   固定   span   home   find   目录   删除   oam   -name   

    删除日志文件操作在维护测试环境过程中需要经常执行,手工删除文件比较费时。通常来说占用文件系统较多空间的是长期运行的应用用户产生的日志文件和上传或者备份的打包文件。日志文件生成的位置和用户名有相对固定的位置和格式,但是打包备份的大文件是不太能直接确定可以直接删除的。基于这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、脚本多次运行测试正常后可配置定时任务进行定期清理删除。

 

删除服务器垃圾文件

标签:需要   固定   span   home   find   目录   删除   oam   -name   

原文地址:http://www.cnblogs.com/linyfeng/p/7536466.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!