这是我参与8月更文挑战的第22天,活动详情查看:8月更文挑战
在linux系统下经常会遇到需要清理文件的情况,但是逐个删除十分费时费力,对于oracle DBA来说,清理trc文件是比较常遇到的问题。 首先拿过来一套系统之后,要先确认是什么东西占用大量空间,是数据文件、备份文件、归档日志,还是trace日志文件?
1.查看当前文件夹内的所有文件和文件夹的大小,并按照大小进行排序
du -ks *|sort -n -k 1 #单位是KB
将-ks改为ms,单位即为MB。
可以逐层寻找占空间较大的文件或者文件夹
2.如何寻找占用空间较大的文件? 在处理客户某个文件系统使用率较高时,如何定位出占磁盘空间比较大的文件。 如何查找目录中大约10G的文件 查找/u01目录下大小大于10个g的文件
$ find /u01/ -size +10000000k #单位是KB
查找/u01目录下大小大于1个g的文件
$ find /u01/ -size +1000000k
查找/u01目录下大小于1个g的文件
$ find /u01/ -size -1000000k
3.如何清理trc文件 利用find命令查找符合指定条件的文件,然后进行清理。 如下:
find /u01/app/oracle/admin/orcl/cdump -name "*.trc" -ctime +20 -exec rm {} \;
find /u01/app/oracle/admin/orcl/cdump -name "core_*" -ctime +5 -exec rm -r {} \;
命令解释:
find 后面跟要查找的路径
-name 后面 禁止使用"*" ,必须带前缀或者后缀,否则发生误删除 将会导致灾难性事故。
+20表示查找20天以前符合-name的文件
rm {} ; 表示删除文件
rm -r {} ; 表示删除文件夹
另外,删除前一定要先通过
find /u01/app/oracle/admin/orcl/cdump -name "*.trc" -ctime +20
搜索出要删除的文件或文件夹,并将结果通过相关工具的日志功能记录下来!
人为仔细确认是否正确后,再添加后面的rm部分执行删除,不经确认执行删除,后果很严重!
有风险意识对于rm命令尽量绕着走,不到迫不得已尽量不要使用。 此外需要确认这些文件是否正在被占用,被占用的日志文件即使rm掉之后也不会释放系统空间。