鍍金池/ 問答/Linux/ nginx日志分隔的問題

nginx日志分隔的問題

在實(shí)際環(huán)境中, 由于nginx會產(chǎn)生大量日志, 所以會按照以天為單位對日志文件進(jìn)行分隔
我有個問題, 就是nginx在日志正在備份并創(chuàng)建新日志文件時, 此時的請求日志會丟失么?

回答
編輯回答
墨小羽
你是怎么以什么方式進(jìn)行分割的?一般如果用shell來處理的話不會存在丟失的情況。
2017年7月14日 11:22
編輯回答
傲嬌范

何必自己寫shell,如果你用的包管理安裝的nginx,自帶就有l(wèi)ogrotate配置,你稍微編輯下就行了。Linux系統(tǒng)基本都用自帶的logrotate滾動日志

2018年6月28日 23:18
編輯回答
失心人

如果你用的是logrotate的話,不會的。
Linux下的每個文件會自帶一個表示inode,logrotate首先重命名正在寫入的日志文件(一般是給文件名添加當(dāng)前日期),而這個文件的inode沒變,nginx還是依據(jù)inode來找到這個文件往里寫。
然后logrotate會通知nginx需要另外打開新的日志文件來寫入,那么nginx會再打開新的日志文件來寫入,命名和原來保持一致。
如此而已。
你可以再看看這篇文章how-logrotate-works。

2017年10月7日 17:10