logrotate 命令基本介绍logrotate命令用于管理系统日志文件通过轮转、压缩和删除旧日志文件来防止日志文件过大是 Linux 系统中维护日志文件的重要工具。资料合集https://pan.quark.cn/s/6fe3007c3e95、https://pan.quark.cn/s/561de99256a5、https://pan.quark.cn/s/985f55b13d94、https://pan.quark.cn/s/d0fb20abd19a语法logrotate [选项] [配置文件]常用选项-d, --debug调试模式不实际执行只显示将要执行的操作-f, --force强制轮转即使没有达到轮转条件-m, --mailcommand指定发送邮件的命令-s, --statestatefile指定状态文件的位置-v, --verbose详细模式显示执行的详细信息-l, --logfile指定日志文件配置文件主配置文件/etc/logrotate.conflogrotate 的主配置文件/etc/logrotate.d/包含各个服务的日志轮转配置文件配置文件示例# 全局配置 weekly rotate 4 create dateext compress # 具体服务配置 /var/log/messages { weekly rotate 5 compress delaycompress missingok postrotate /usr/bin/systemctl reload syslog.service /dev/null 21 || true endscript }常用配置选项基本选项daily, weekly, monthly, yearly指定轮转频率rotate N保留 N 个旧日志文件create [mode owner group]创建新的日志文件并设置权限compress压缩旧日志文件delaycompress延迟压缩等到下一次轮转时再压缩nocompress不压缩旧日志文件missingok如果日志文件不存在不报错notifempty如果日志文件为空不进行轮转empty即使日志文件为空也要进行轮转dateext使用日期作为日志文件后缀dateformat FORMAT指定日期格式size SIZE当日志文件达到指定大小时进行轮转脚本选项prerotate轮转前执行的脚本postrotate轮转后执行的脚本preremove删除旧日志前执行的脚本postremove删除旧日志后执行的脚本使用示例1. 执行主配置文件logrotate/etc/logrotate.conf2. 强制轮转所有日志logrotate-f/etc/logrotate.conf3. 调试模式执行logrotate-d/etc/logrotate.conf4. 详细模式执行logrotate-v/etc/logrotate.conf5. 执行特定配置文件logrotate/etc/logrotate.d/nginx常见服务的日志轮转配置Nginx 日志轮转配置/var/log/nginx/*.log { daily rotate 10 compress delaycompress missingok notifempty create 0640 nginx nginx postrotate if [ -f /var/run/nginx.pid ]; then kill -USR1 cat /var/run/nginx.pid fi endscript }Apache 日志轮转配置/var/log/httpd/*.log { weekly rotate 5 compress delaycompress missingok notifempty create 644 apache apache postrotate /usr/bin/systemctl reload httpd.service /dev/null 21 || true endscript }MySQL 日志轮转配置/var/log/mysql/mysql.log { daily rotate 7 compress delaycompress missingok create 640 mysql mysql postrotate /usr/bin/systemctl restart mysql.service /dev/null 21 || true endscript }相关命令logger向系统日志写入消息journalctl查看 systemd 日志dmesg查看内核日志syslogd系统日志守护进程rsyslogd增强的系统日志守护进程注意事项logrotate 通常通过 cron 定期执行默认配置在/etc/cron.daily/logrotate配置文件中的脚本部分需要注意权限和执行顺序对于某些服务轮转后需要重启或重载服务才能使新的日志文件生效可以通过man logrotate查看完整的命令手册总结logrotate命令是 Linux 系统中管理日志文件的重要工具它通过定期轮转、压缩和删除旧日志文件防止日志文件过大占用磁盘空间。通过合理配置 logrotate可以确保系统日志的有效管理同时为故障排查和系统监控提供可靠的日志记录。