关于使用logrotate对nginx的日志分割时文件夹权限问题解答

在尝试使用logrotate分割nginx日志时遇到权限错误,错误信息指出父目录权限不安全。常见解决方案是在logrotate配置文件中添加'su'指令指定旋转用户,但此方法并未解决问题。最终通过修改日志文件夹权限为`drwx------+ 2 nginx nginx`成功解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用logrotate对nginx的日志进行分割的时候系统报错,error信息:

error: skipping "/var/log/nginx/access.log" because parent directory has insecure permissions (It's world writable or writable by group which is not "root") Set "su" directive in config file to tell logrotate which user/group should be used for rotation.

提示没有权限访问nginx/access.log,看过其他人遇到的情况,处理办法是在/etc/logrotate.d/nginx文件中添su root list,添加后的nginx文件:

/var/log/nginx/*.log {

        su root list

        daily

        missingok

        rotate 52

        compress

        delaycompress

        notifempty

        #ifempty

        create 0640 www-data adm

        sharedscripts

        postrotate

                [ ! -f/var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`

        endscript

}

但是实际并没有解决我的问题,然后其实通过修改权限的方式解决问题的,修改为:

drwx------+  2 nginx  nginx              4096 Mar 22 09:16 nginx

希望有帮助


### 如何配置 Logrotate 管理 Nginx 日志 为了有效管理和维护 Nginx日志文件,Logrotate 是一个非常有用的工具。通过合理配置 `/etc/logrotate.d/nginx` 文件,可以实现对 Nginx 访问日志和错误日志的有效管理。 #### 配置示例 下面是一个典型的 `logrotate` 配置文件示例,适用于大多数基于 Debian/Ubuntu 的系统: ```bash /var/log/nginx/*.log { daily missingok rotate 14 compress delaycompress notifempty create 0640 www-data adm sharedscripts postrotate if [ -f "`. /etc/nginx/nginx.conf; echo $ERROR_LOG_PATH`" ]; then invoke-rc.d nginx reload > /dev/null fi; endscript } ``` 此配置说明如下[^3]: - **daily**: 表示每天轮转一次日志。 - **missingok**: 如果日志文件不存在,则不会报错并继续执行其他操作。 - **rotate 14**: 保留过去 14 天的日志副本。 - **compress**: 对旧的日志文件进行压缩处理。 - **delaycompress**: 延迟一天再压缩前一天的日志文件,以便于查看最新的一天未压缩版本。 - **notifempty**: 当日志为空不创建新的日志文件。 - **create 0640 www-data adm**: 创建新日志文件设定权限为 0640,并将其拥有者设置为 `www-data` 用户组属于 `adm` 组。 - **sharedscripts** 和 **postrotate...endscript**: 这部分脚本会在每次完成一轮日志轮转之后运行,主要用于重新加载 Nginx 服务以应用更改后的日志位置。 对于使用 Docker 容器部署的应用来说,还需要特别注意容器内的日志存储方式以及宿主机上相应的挂载点设置,确保能够正常访问到这些日志文件来进行轮转操作[^1]。 此外,在某些情况下可能需要调整具体的参数来适应不同的业务需求或者服务器资源状况。例如增加或减少保存的历史日志数量、改变轮转频率等都可以根据实际情况灵活修改。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值