Logrotate 不会自动旋转,但它可以与 logrotate -d 和 logrotate -f 一起使用

Logrotate 不会自动旋转,但它可以与 logrotate -d 和 logrotate -f 一起使用

Logrotate 不会自动旋转,但它可以与 logrotate -d 和 logrotate -f 一起使用,并且不会显示任何错误。但它并不是每天自动运行。以下是 logrotate -d 输出。

logrotate -d  /etc/logrotate.d/lumen 
reading config file /etc/logrotate.d/lumen
Allocating hash table for state file, size 15360 B

Handling 1 logs

rotating pattern: /var/www/*/storage/logs/*.log  after 1 days (365 rotations)
empty log files are rotated, old logs are removed
switching euid to 48 and egid to 48
considering log /var/www/testdir/storage/logs/laravel.log
  log needs rotating
rotating log /var/www/testdir/storage/logs/laravel.log, log->rotateCount is 365
Converted ' -%Y%m%d' -> '-%Y%m%d'
dateext suffix '-20190425'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
compressing log with: /bin/gzip
fscreate context set to unconfined_u:object_r:httpd_user_rw_content_t:s0
renaming /var/www/testdir/storage/logs/laravel.log to /var/www/testdir/storage/logs/laravel.log-20190425
switching euid to 0 and egid to 0

答案1

您应该检查 Cron 是否已安装/Cron Job 是否到位

答案2

我不禁注意到您正在轮换位于 下的日志/var/www,并logrotate发出以下与 SELinux 相关的消息:

fscreate context set to unconfined_u:object_r:httpd_user_rw_content_t:s0

当您使用管理员权限从不受限制的会话中手动运行时logrotate,它当然可以将 SELinux 类型设置为httpd_user_rw_content_t.

但是,在更受限制的环境中logrotate启动的人cron可能无法做到这一点,除非您已采取措施允许这样做。

至少在selinux-policy-doc安装了该软件包的 RHEL 7.9 上,man logrotate_selinux不会httpd_user_rw_content_t以任何方式列出与 logrotate 相关的内容。

如果您有一个合法的 Web 应用程序,要求旋转日志可写的by httpd,并且显然也在网络服务器的文档根目录下,那么你当然可以这样做......但我不禁发现这样的配置有些风险,在“来破解我并擦除我的日志”的意义上。

相关内容