unix 文件清理一例

unix环境下,经常会遇到一种情况,就是存放日志的文件目录满了,需要进行清理。通常来说,日志文件具有一定的时效性,例如一周,超过一周的日志文件就可以进行清理(以应用日志为例,数据库ARCH日志,以是否备份完成为标准)。
在windows环境下,我们可以用图形界面,根据时间排序,然后用鼠标框选文件,然后按下delete键,多方便。可是在unix字符界面下,我们没有鼠标,没有框选,只能使用命令了,下面我们就介绍下如何通过命令简单快速的实现我们的需求。
首先,我们来假设一个应用场景:
接到文件系统使用率告警,目前主机dbaleading1上的/u01目录满了,需要进行清理。
接到这个case后,首先做理论分解,该怎么去思考。
1. 首先,/u01目录肯定有很多子目录,必须得先找到是哪些子目录占用了大部分的空间,如果要清理空间,肯定是清理占用空间多的。
2. 找到占用空间大的目录后,需要知道该目录中存放的是什么文件。
3. 根据文件,确定清理策略后(如保留7天,后缀为.log的应用过期日志文件),要根据策略,将需要清理的数据,筛选出来;
4. 对筛选出来的文件,进行清理。

理论分析清楚了以后,我们按照步骤,一步步来实现,过程很简单,重要的是,我们在日常运维中,特别是重要系统中做操作的时候,一定要知道自己做的是什么,会有什么样的影响,毕竟,我们是系统的最后一道防线。

1. 在windows下,我们可以点文件夹,右键,查看属性,就可以知道文件夹大小,在unix字符界面下,我们采用sort排序的方式,命令如下:
[[email protected] ~]# cd /u01
[[email protected] u01]# du -sk * | sort -n
有关具体命令的作用,语法等等,可以用 man工具查看,如unix下输入 man du,就会出现du的命令手册。

2. 假设发现/u01/log目录占用空间比较大,则进入/u01/log目录,使用 ls -ltr命令查看该目录内的具体文件信息,如果仍然存在多个文件夹,则重复第一步。目前的场景,我们假设该目录中,存放了大量的应用日志文件,以.log结尾。

3. 发现大量应用日志占用空间,根据策略,我们需要把7天前的日志文件给删除了,这一步,我们使用find命令来实现,如下:
[[email protected] ~]# find . -mtime +7 |xargs ls -lrt
在这个命令中,主命令是 find . -mtime +7 ,其意义是在当前目录中,寻找创建时间大于7天前的文件,管道命令|xargs ls -lrt的作用,是把这些文件按照时间顺序排列好,然后显示出来。

4. 如果第3步中的文件经过确认,可以删除的,那么,把管道命令中的ls命令替换成删除命令就可以了,如下:
[[email protected] ~]# find . -mtime +7 |xargs rm -fr

5. 完成清理后,我们再通过命令 df -m ,进行复查,确认无误后,这个处理流程就全部完成了。

unix 文件清理一例

时间: 2024-10-25 19:38:04

unix 文件清理一例的相关文章

mysql导出文件到txt并指定字段分隔符;mysql导出到xls文件sql试例

mysql > select m.asset_id, m.asset_name, m.director, m.actor, m.country_of_origin, m.years, concat('http://192.167.1.120:15414/',p.poster_url),m.category  from ao_movie_tab m, ao_poster_tab p where m.asset_id = p.asset_id group by m.asset_id order by

unix文件操作函数

1. fopen函数 1 #include <stdio.h> 2 FILE *fopen(const char *path, const char *mode) 返回:文件顺利打开后,指向该流的文件就会被返回.如何文件打开失败则返回NULL,并把错误代码存在 errno 中. 参数说明: mode: 1)r        以只读方式打开文件,该文件必须存在.     2) r+     以可读写方式打开文件,该文件必须存在.    3) rb+   以读写打开一个二进制文件,允许读写数据,文

Office2016安装完成后的冗余文件清理

Office2016安装完成后的冗余文件清理 微软数日前就已经开始了Office 2016正式版的推送,Office2016采用了Click To Run安装技术,在安装时可能会从网络中下载大量更新,但这些更新文件在安装完成后不会被自动删除.尤其是经过多次升级后,会导致大量硬盘空间被占用.如果你也遇到了这个问题,可参考下面的方法来清理Office2016安装后的冗余文件. • 在文件资源管理器中打开下面的文件夹: C:\ProgramData\Microsoft\ClickToRun 注:Pro

C#.bat文件清理工程目录

另外一种方法是自己写一个bat文件来清理,非常方便,下面是自己写的验证过比较好用的方法. bat文件内容如下: echo 正在清理VS2010工程中不需要的文件 echo 请确保本文件放置在工程目录之中并关闭VS2010 echo 开始清理请稍等...... echo 清理sdf文件 del /q/a/f/s *.sdf echo 清理ipch文件 del /q/a/f/s ipch\*.* echo 清理Debug文件 del /q/a/f/s Debug\*.obj del /q/a/f/s

Unix文件操作

一.概述 Unix文件操作常用函数包括open.close.creat.lseek.dup.dup2.fcntl等, 其中open.creat. fcntl函数需要包含头文件<fcntl.h>, 其余几个函数需要包含头文件<unistd.h>. 由于在Linux操作系统 中使用man命令可以非常方便的查找函数原型及示例,这里就不帖出函数原型了,只讲一下使用时需要注意的地方. 二.文件描述符 每一个在程序中打开的文件都有一个相应的文件描述符(file descriptor),Unix

使用UltraEdit实现从DOS文件到UNIX文件的批量转换

最近把公司从SVN切到GIT下,因为大多同事在Windows下开发,又碰到换行符问题,找到一个批量转换方法 打开UE->在文件中替换,把^p替换成^n,然后设置好要替换的文件和路径,就开始替换吧. 使用UltraEdit实现从DOS文件到UNIX文件的批量转换

unix 文件系统结构标准 (fhs)

文件系统层次结构 翻译者:Yinghua Wang [email protected] 若发现问题请和我联 系 目录 第一章 介绍.............................................................. 1 1.1.目的............................................................1 1.2.约定..............................................

Unix文件 I/O(不带缓冲区的)上

简介 Unix系统大多数文件i/o只需要:open.read.write.lseek.close这几个函数.但是某些时候我们也需要fcntl.ioctl.sync等函数配合使用.这些函数都是不带缓冲区的I/0(unbuffered I/O), 术语不带缓冲的指的是每个read和write都是内核中的一个系统调用.这些函数都是POSIX和single UNIX Specification的组成部分. 这样说可能有点迷糊,举个例子说明 不带缓存的I/O:       read,write,open.

unix文件描述符——socket

在unix系统中,socket和普通文件一样对待,因为它可以像普通文件一样被读和写,但是它还有一些自己独特的特点,例如,文件的读写位置可以设置,但是socket只能被顺序的读写等等,那么在unix系统中,是如何实现这种方式的呢? 如下图,其中有以下重要数据结构:proc.filedesc.file等,对这些重要数据结构及其之间的关系弄清楚之后,上面的问题自然就有答案了.在本文介绍中,使用的操作系统源码为:4.4bsd-lite版本,该版本是<TCP/IP协议卷2--实现>一书使用的源码,同时该