linux下日志占用空间过大的解决方法
日志过大之后,如果每次都人工处理,是件很头疼的事情。这里介绍几种常用的方法,可使用简单的linux命令定时执行:
1.删除时间比较早的日志觉得已经无用,删除即可。
这里以mysql的二进制日志为例:
find /data/mysql_data -maxdepth 1 -name "mysql-bin.0*" -ctime +15 -exec rm {} \;
/data/mysql_data是日志所在的文件夹
-maxdepth 1表示只查找指定的文件夹,而不包括子目录。如果不指定-maxdepth,表示包括子目录。
-name查找符合条件的文件名
-ctime +15表示查找创建时间是15天之前的
-exec rm {} \;表示对符合条件的文件进行删除
整个语句的意思是,只查找/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中,省心省事。