我正在运行 Ubuntu 14.04。我有这个 Rails 项目,我的日志在大小方面正在失控地激增……
myuser@myapp:~$ ls -al /home/rails/myapp/log/
total 3118220
drwxr-xr-x 2 rails rails 4096 Jul 3 22:31 .
drwxr-xr-x 15 rails rails 4096 Sep 21 17:21 ..
-rw-rw-r-- 1 rails rails 0 Jun 22 10:22 development.log
-rw-rw-r-- 1 rails rails 14960 Jun 1 22:39 development.log.1
-rw-rw-r-- 1 rails rails 0 Oct 22 2016 .keep
-rw-r--r-- 1 rails rails 178464887 Oct 11 10:00 production.log
-rw-r--r-- 1 rails rails 8615654 Jul 3 22:31 production.log.1
-rw-r--r-- 1 rails rails 640621243 Jun 29 13:16 production.log.2.gz
-rw-rw-r-- 1 rails rails 2016391330 Oct 11 10:09 sidekiq.log
-rw-rw-r-- 1 rails rails 348853619 Jul 3 22:31 sidekiq.log.1
-rw-rw-r-- 1 rails rails 0 Jul 3 22:31 test.log
-rw-rw-r-- 1 rails rails 54246 Jul 3 22:31 test.log.1
我已经设置了这个日志轮换规则..l
myuser@myapp:~$ cat /etc/logrotate.d/myapp
/home/rails/myapp/log/*.log {
daily
missingok
compress
notifempty
rotate 12
create
delaycompress
missingok
su rails rails
postrotate
pkill -USR1 -u rails unicorn
endscript
}
然而,尽管我加入了“技能”命令,但物体仍然没有旋转。有人推测,物体没有旋转是因为有正在运行的进程,例如下面的
myuser@myapp:~$ ps -elf | grep sidekiq
1 S rails 23864 1 1 80 0 - 254353 - Oct10 ? 00:10:49 sidekiq 5.0.0 myapp [1 of 1 busy]
我想知道如何在进程运行的情况下轮换日志。如果这不是问题,那么我只想轮换日志。
答案1
正在运行的进程很可能阻止日志轮换。您有两个选择。要么在 postrotate 部分重新启动进程(sidekiq),要么使用复制截断选项来就地截断原始文件而不是删除它。