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
,并且显然也在网络服务器的文档根目录下,那么你当然可以这样做......但我不禁发现这样的配置有些风险,在“来破解我并擦除我的日志”的意义上。