Unix/Linux中常用的清理磁盘空间的命令

这里推荐几种常用的方法:

第一种方法:

find ./ -name "*.log*" -exec echo ">" {} \;|sh

这条命令的意思就是搜索当前目录下的以".log”结尾的文件,并将其清空,这种适合于日志长期存在并且不便直接删除的时候使用。使用“>”进行清空操作的时候

后面要加上"|sh”。

第二种方法:

find ./ -name "*.log" -mtime +1 -exec compress {} \;
find ./ -name "*.log" -mtime +1 -exec rm {} \;

这条命令的意思就是搜索当前目录下的以".log"结尾的文件,-mtime +1的意思就是文件的最后修改时间超过1天的,对满足这两种条件的文件进行压缩或者删除操

作。

第三种方法:

ls TRACE_*.log|perl -lne '@a=stat($_);if( (time()-$a[9])/3600 >6 ) {print "rm $_";}'|sh

ls ULOG.*[0-9]|perl -lne '@a=stat($_);if( (time()-$a[9])/3600 >24 ) {print "compress $_";}'|sh

ls大家很熟悉,就是列出当前文件夹下的文件,后面的perl -lne就是perl中很有用的命令行参数,stat是其中的一个函数,能够获得文件的各种状态,"$_"就是由前面的ls函数列出的文件名的通配符,time()是系统函数,获取当前的系统时间,"$a[9]"就是由前面的stat函数得到的文件状态a中第九个参数,也就是文件的时间,“if( (time()-$a[9])/3600 >6 )”的意思显而易见,就是指系统当前时间减去文件时间如果大于6个小时的话,就执行后面的操作。

第二条命令类似。

一般来说,可以找出系统中的各个程序的日志目录,并商定各个程序日志需要保留的时间,选用合适的命令,写成清理脚本,然后配置到系统的crontab中定期执行,这样就实现了磁盘空间的自动维护,这样就不会出现因为日志量过大而将系统磁盘空间占满而使程序不能正常执行的问题。


 

转载于:https://www.cnblogs.com/haoshikui/archive/2011/12/29/2306342.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值