linux下日志占用空间过大的解决方法

日志过大之后,如果每次都人工处理,是件很头疼的事情。这里介绍几种常用的方法,可使用简单的linux命令定时执行:

1.删除

时间比较早的日志觉得已经无用,删除即可。

这里以mysql的二进制日志为例:

find /data/mysql_data -maxdepth 1 -name "mysql-bin.0*" -ctime +15 -exec rm {} \;
/data/mysql_data是日志所在的文件夹

-maxdepth1表示只查找指定的文件夹,而不包括子目录。如果不指定-maxdepth,表示包括子目录。

-name查找符合条件的文件名

-ctime+15表示查找创建时间是15天之前的

-execrm{}\;表示对符合条件的文件进行删除

整个语句的意思是,只查找/data/mysql_data下(不包括子目录),名称以mysql-bin.0开头,且创建时间是15天前的文件,并删除它们。

2.打包压缩

最常用的方法。以tar.gz包为例:

tar --remove-files -czf adclick.2011-06.tar.gz adclick.2011-06*

对以adclick.2011-06开头的所有文件,打包成adclick.2011-06.tar.gz,并删除原文件。

--remove-files表示删除原文件,很实用

3.转移

最常用的命令是rsync:

/usr/bin/rsync -vzrtopgu --progress --delete /home/logs/ 10.10.10.1::public/logs

对/home/logs下的所有文件以及文件夹,同步到10.10.10.1服务器的public/logs目录下。当然10.10.10.1需要开启rsync服务。

以上命令写到crontab中,省心省事。

相关推荐