标签:需要 固定 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