云计算运维学习---Linux日志切割神器“logrotate”
Logrotate是干啥用的
Logrotate程序是一个日志文件的管理工具。用于分割日志文件,压缩转存、删除旧的日志文件,并创建信息的日志文件。Logrotate是基于crontab运行的,所以这个时间点是由crontab控制的,系统会按照计划的频率运行logrotate
为啥要使用Logrotate,手动管理不香嘛
在Linux系统中,几乎所有的操作都会被记录到相应的日志中。比如常见的系统日志"/var/log/messages",应用程序Nginx日志"/var/log/nginx/*.log"。一般服务器少时,比如自己的电脑,确实自己手动就可以管理日常Linux系统产生的日志信息。但是服务器数量多,尤其使用Nginx服务部署的web服务器,每天就会产生大量日志信息。如果不做处理,这些大量的日志信息就会不断地消耗磁盘空间以致触发警告。如果此时人为地去归档每天产生地日志信息,删除时间久远的信息就会显得十分棘手。所以为了解救运维人员的发量,最好使用logrotate程序自动管理。
Logrotate日志分割执行的过程
logrotate是基于CRON来运行的,"/etc/anacrontab"配置文件中定义了每天什么时候系统就会执行"/etc/cron.daily/logrotate"脚本。执行"/etc/cron.daily/logrotate"脚本时,实际运行的是"/etc/logrotate.conf"配置文件。"/etc/logrotate.conf"配置文件中配置了操作日志文件的默认参数,而日志文件具体如何操作,都要从"/etc/logrotate.d"目录下获取相应日志的配置文件。
Logrotate默认自动切割生效时间
“/etc/cron.daily/logrotate"脚本运行的时间是在”/etc/anacrontab"配置文件中被定义的。
若是不想使用系统的切割时间,可以自定义切割时间。下面是步骤:
第一步:取消日志的自动轮转
第二步:编辑自己想要切割时间的配置文件
第三步:创建定时任务,定时执行自己的配置文件
通过上面的步骤就可以自定义时间切割日志文件了。(没有特殊要求的话,自动轮转就很香,无需自定义)
/etc/logrotate.conf配置文件
其它重要参数说明:
logrotate无法自动轮询咋办
1.查看"/etc/logrotate.d"目录下的日志配置文件是否配置正确
2.在命令行中手动轮询:logrotate /etc/logrotate.conf
3.重启cron服务
logrotate命令格式