1. 首页
  2. IT资讯

unix 文件清理一例

  1. unix环境下,经常会遇到一种情况,就是存放日志的文件目录满了,需要进行清理。通常来说,日志文件具有一定的时效性,例如一周,超过一周的日志文件就可以进行清理(以应用日志为例,数据库ARCH日志,以是否备份完成为标准)。  
  2. 在windows环境下,我们可以用图形界面,根据时间排序,然后用鼠标框选文件,然后按下delete键,多方便。可是在unix字符界面下,我们没有鼠标,没有框选,只能使用命令了,下面我们就介绍下如何通过命令简单快速的实现我们的需求。  
  3. 首先,我们来假设一个应用场景:  
  4. 接到文件系统使用率告警,目前主机dbaleading1上的/u01目录满了,需要进行清理。  
  5. 接到这个case后,首先做理论分解,该怎么去思考。  
  6. 1. 首先,/u01目录肯定有很多子目录,必须得先找到是哪些子目录占用了大部分的空间,如果要清理空间,肯定是清理占用空间多的。  
  7. 2. 找到占用空间大的目录后,需要知道该目录中存放的是什么文件。  
  8. 3. 根据文件,确定清理策略后(如保留7天,后缀为.log的应用过期日志文件),要根据策略,将需要清理的数据,筛选出来;  
  9. 4. 对筛选出来的文件,进行清理。  
  10.   
  11. 理论分析清楚了以后,我们按照步骤,一步步来实现,过程很简单,重要的是,我们在日常运维中,特别是重要系统中做操作的时候,一定要知道自己做的是什么,会有什么样的影响,毕竟,我们是系统的最后一道防线。  
  12.   
  13. 1. 在windows下,我们可以点文件夹,右键,查看属性,就可以知道文件夹大小,在unix字符界面下,我们采用sort排序的方式,命令如下:  
  14. [root@dbaleading1 ~]# cd /u01  
  15. [root@dbaleading1 u01]# du -sk * | sort -n  
  16. 有关具体命令的作用,语法等等,可以用 man工具查看,如unix下输入 man du,就会出现du的命令手册。  
  17.   
  18. 2. 假设发现/u01/log目录占用空间比较大,则进入/u01/log目录,使用 ls –ltr命令查看该目录内的具体文件信息,如果仍然存在多个文件夹,则重复第一步。目前的场景,我们假设该目录中,存放了大量的应用日志文件,以.log结尾。  
  19.   
  20. 3. 发现大量应用日志占用空间,根据策略,我们需要把7天前的日志文件给删除了,这一步,我们使用find命令来实现,如下:  
  21. [root@dbaleading1 ~]# find . -mtime +7 |xargs ls -lrt  
  22. 在这个命令中,主命令是 find . -mtime +7 ,其意义是在当前目录中,寻找创建时间大于7天前的文件,管道命令|xargs ls -lrt的作用,是把这些文件按照时间顺序排列好,然后显示出来。  
  23.   
  24. 4. 如果第3步中的文件经过确认,可以删除的,那么,把管道命令中的ls命令替换成删除命令就可以了,如下:  
  25. [root@dbaleading1 ~]# find . -mtime +7 |xargs rm -fr  
  26.   
  27. 5. 完成清理后,我们再通过命令 df -m ,进行复查,确认无误后,这个处理流程就全部完成了。  

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/223653/viewspace-1254515/,如需转载,请注明出处,否则将追究法律责任。

主题测试文章,只做测试使用。发布者:℅傍ㄖ免沦陷dε鬼,转转请注明出处:http://www.cxybcw.com/192464.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code