国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

互聯(lián)網(wǎng)軟件外包網(wǎng)站怎么優(yōu)化排名靠前

互聯(lián)網(wǎng)軟件外包,網(wǎng)站怎么優(yōu)化排名靠前,企業(yè)做網(wǎng)站這些問(wèn)題必須要注意,貴州安順做公司網(wǎng)站場(chǎng)景 最近底層api需要上集群,于是用nginx做了轉(zhuǎn)發(fā),但是隨著時(shí)間的增長(zhǎng),nginx的日志越來(lái)越大,磁盤(pán)空間也頂不住了,于是需要對(duì)日志進(jìn)行分割,由于nginx原生是不支持日志按天存儲(chǔ)和分割的,網(wǎng)上也介…

場(chǎng)景

最近底層api需要上集群,于是用nginx做了轉(zhuǎn)發(fā),但是隨著時(shí)間的增長(zhǎng),nginx的日志越來(lái)越大,磁盤(pán)空間也頂不住了,于是需要對(duì)日志進(jìn)行分割,由于nginx原生是不支持日志按天存儲(chǔ)和分割的,網(wǎng)上也介紹了通過(guò)配置nginx.conf的方式實(shí)現(xiàn)按天存儲(chǔ),但是經(jīng)過(guò)本地簡(jiǎn)單測(cè)試并未生效,而且感覺(jué)不是很靈活,沒(méi)有繼續(xù)深挖。

于是選擇了更為強(qiáng)大和靈活的logrotate方式。

logrotate簡(jiǎn)要介紹

logrotate是一個(gè)日志文件管理工具。用于分割日志文件,刪除舊的日志文件,并創(chuàng)建新的日志文件,起到“轉(zhuǎn)儲(chǔ)”作用??梢怨?jié)省磁盤(pán)空間。 使用logrotate指令,可以輕松管理系統(tǒng)所產(chǎn)生的記錄文件。每個(gè)記錄文件都可被設(shè)置成每日,每周或每月處理,也能在文件太大時(shí)立即處理。

下面是logrotate的一些重要概念和功能:

  1. 配置文件:logrotate的配置文件位于/etc/logrotate.conf和/etc/logrotate.d/目錄下。其中,logrotate.conf是主配置文件,而/etc/logrotate.d/目錄則包含其他應(yīng)用程序的單獨(dú)配置文件,每個(gè)配置文件對(duì)應(yīng)一個(gè)應(yīng)用程序的日志輪轉(zhuǎn)規(guī)則。
  2. 日志輪轉(zhuǎn)規(guī)則:每個(gè)日志文件都可以在配置文件中定義一個(gè)輪轉(zhuǎn)規(guī)則。這些規(guī)則包含了日志文件的路徑、輪轉(zhuǎn)周期(如每天、每周、每月等)以及保留的日志文件數(shù)量。
  3. 預(yù)定義選項(xiàng):logrotate提供了一些預(yù)定義的選項(xiàng),例如daily(每天輪轉(zhuǎn))、weekly(每周輪轉(zhuǎn))、monthly(每月輪轉(zhuǎn))等。你可以在配置文件中使用這些選項(xiàng)來(lái)定義日志文件的輪轉(zhuǎn)周期。
  4. 輪轉(zhuǎn)方式:logrotate支持不同的輪轉(zhuǎn)方式,包括copytruncate(復(fù)制并截?cái)?#xff09;、rotate(旋轉(zhuǎn),即重命名并創(chuàng)建新文件)等。copytruncate方式會(huì)復(fù)制當(dāng)前日志內(nèi)容到新文件,然后截?cái)喈?dāng)前日志文件,這樣應(yīng)用程序可以繼續(xù)寫(xiě)入新文件。
  5. postrotate和prerotate:在輪轉(zhuǎn)之前或之后,logrotate可以運(yùn)行用戶定義的腳本。這在你需要在輪轉(zhuǎn)期間執(zhí)行額外操作時(shí)非常有用,比如重新啟動(dòng)服務(wù)或壓縮舊日志文件。
  6. 配置檢查:logrotate提供了一個(gè)-d選項(xiàng),可以用來(lái)檢查配置文件的語(yǔ)法和效果,以幫助你確認(rèn)輪轉(zhuǎn)規(guī)則是否按預(yù)期工作。
  7. 手動(dòng)輪轉(zhuǎn):盡管logrotate會(huì)定期自動(dòng)運(yùn)行,但你也可以通過(guò)運(yùn)行l(wèi)ogrotate -f /path/to/config命令來(lái)手動(dòng)觸發(fā)日志輪轉(zhuǎn)。

首先我們需要在一個(gè)鏡像,鏡像中有nginx、cron、logrotate 等軟件,該鏡像的制作和下載可參考:https://blog.csdn.net/weixin_43702146/article/details/131958486

容器內(nèi)logrotate安裝(Debian)

Linux系統(tǒng)默認(rèn)安裝logrotate工具,logrotate是基于cron來(lái)運(yùn)行的,其腳本是/etc/cron.daily/logrotate,日志輪轉(zhuǎn)是系統(tǒng)自動(dòng)完成的。

實(shí)際運(yùn)行時(shí),logrotate會(huì)調(diào)用配置文件/etc/logrotate.conf。可以在/etc/logrotate.d目錄里放置自定義好的配置文件,用來(lái)覆蓋logrotate的缺省值

docker容器默認(rèn)是不帶logrotate工具的,安裝步驟可參考:https://blog.csdn.net/weixin_43702146/article/details/131958486

logrotate 使用方式以及參數(shù)解釋

  • 語(yǔ)法:
    logrotate [選項(xiàng)] [配置文件] [配置參數(shù)]

  • 選項(xiàng):
    -d或–debug:debug 模式,詳細(xì)顯示指令執(zhí)行過(guò)程,測(cè)試配置文件是否有錯(cuò)誤
    -f或–force :強(qiáng)制轉(zhuǎn)儲(chǔ)文件
    -s<狀態(tài)文件>或–state=<狀態(tài)文件>:使用指定的狀態(tài)文件
    -v或–version:顯示轉(zhuǎn)儲(chǔ)過(guò)程
    -m或–mail=command :壓縮日志后,發(fā)送日志到指定郵箱。
    -usage:顯示指令基本用法

  • 配置文件:
    指定lograote指令的配置文件,可缺省,缺省值為/etc/logrotate.conf

  • 配置參數(shù)

指令含義
daily每天輪轉(zhuǎn)一次。默認(rèn)情況下,輪轉(zhuǎn)周期是每周一次
weekly指定轉(zhuǎn)儲(chǔ)周期為每周
monthly指定轉(zhuǎn)儲(chǔ)周期為每月
指令含義
rotate [count]保留舊日志文件的數(shù)量。例如,rotate 5表示保留最近的5個(gè)舊日志文件。
指令含義
dateext使用當(dāng)期日期作為命名格式
dateformat .%s配合dateext使用,緊跟在下一行出現(xiàn),定義文件切割后的文件名,必須配合dateext使用,只支持 %Y %m %d %s 這四個(gè)參數(shù)
指令含義
compress通過(guò)gzip 壓縮轉(zhuǎn)儲(chǔ)以后的日志
delaycompress在進(jìn)行輪轉(zhuǎn)時(shí)不立即壓縮舊日志文件,而是推遲一次壓縮操作。通常與compress選項(xiàng)一起使用,確保應(yīng)用程序不會(huì)在壓縮操作進(jìn)行時(shí)無(wú)法寫(xiě)入新的日志數(shù)據(jù)。
nocompress不做gzip壓縮處理
指令含義
create輪轉(zhuǎn)時(shí)指定創(chuàng)建新文件的屬性,默認(rèn)與之前的權(quán)限一致,也可自定權(quán)限和組,如create 640 nobody nobody
nocreate不建立新的日志文件
指令含義
size [size]當(dāng)日志文件大小達(dá)到指定大小時(shí)觸發(fā)輪轉(zhuǎn)??梢允褂胟表示KB,M表示MB,G表示GB。例如,size 100M表示日志文件大小達(dá)到100MB時(shí)進(jìn)行輪轉(zhuǎn)
maxsize [size]設(shè)置日志文件的最大大小。一旦日志文件大小超過(guò)此限制,將強(qiáng)制進(jìn)行輪轉(zhuǎn)。與size選項(xiàng)不同的是,maxsize不會(huì)觸發(fā)定期輪轉(zhuǎn),它僅在日志文件大小超過(guò)限制時(shí)才生效
minsize [size]設(shè)置日志文件的最小大小。如果日志文件大小小于此限制,則不會(huì)進(jìn)行輪轉(zhuǎn)
指令含義
ifempty即使日志文件為空文件也做輪轉(zhuǎn),這個(gè)是logrotate的缺省選項(xiàng)
notifempty只在日志文件非空時(shí)才進(jìn)行輪轉(zhuǎn)。如果日志文件為空,logrotate不會(huì)執(zhí)行輪轉(zhuǎn)操作
missingok如果日志文件不存在,也不會(huì)報(bào)錯(cuò)。logrotate會(huì)繼續(xù)執(zhí)行其他輪轉(zhuǎn)規(guī)則
指令含義
postrotate [command] endscript在輪轉(zhuǎn)之后,postrotate 和 endscript 里面指定的命令將被執(zhí)行,通常用于重新啟動(dòng)服務(wù)或執(zhí)行其他額外的操作
prerotate [command] endscript在輪轉(zhuǎn)之前,prerotate 和 endscript 里面指定的命令將被執(zhí),同樣也可用于執(zhí)行一些預(yù)處理操作
sharedscripts在執(zhí)行postrotate和prerotate時(shí),只運(yùn)行一次共享腳本,而不是每個(gè)日志文件分別執(zhí)行
dateyesterday在執(zhí)行postrotate或prerotate時(shí),使用昨天的日期
指令含義
copytruncate在輪轉(zhuǎn)時(shí),將當(dāng)前日志文件復(fù)制到新文件,然后截?cái)喈?dāng)前日志文件。這使得應(yīng)用程序可以繼續(xù)寫(xiě)入當(dāng)前文件,而不會(huì)受到日志文件名變化的影響
nocopytruncate不使用復(fù)制并截?cái)喾绞健Ef日志文件會(huì)被重命名,這可能導(dǎo)致應(yīng)用程序無(wú)法繼續(xù)寫(xiě)入日志
指令含義
errors [address]專(zhuān)儲(chǔ)時(shí)的錯(cuò)誤信息發(fā)送到指定的Email 地址
mail [address]把轉(zhuǎn)儲(chǔ)的日志文件發(fā)送到指定的E-mail 地址
nomail轉(zhuǎn)儲(chǔ)時(shí)不發(fā)送日志文件
指令含義
olddir [directory]轉(zhuǎn)儲(chǔ)后的日志文件放入指定的目錄,必須和當(dāng)前日志文件在同一個(gè)文件系統(tǒng)
noolddir轉(zhuǎn)儲(chǔ)后的日志文件和當(dāng)前日志文件放在同一個(gè)目錄下

使用logrotate測(cè)試切割

編輯配置文件

編輯文件 /etc/logrotate.d/nginx,以下是一個(gè)簡(jiǎn)要按天存儲(chǔ)的配置

/var/log/nginx/*.log {# 每天輪轉(zhuǎn)daily# 忽略錯(cuò)誤missingoknotifempty# 保留最近7個(gè)rotate 7# 禁用gzip壓縮delaycompress# 創(chuàng)建新的文件create# 輪轉(zhuǎn)后的日志文件后綴名為日期dateext# 輪轉(zhuǎn)后執(zhí)行腳本sharedscriptspostrotateif [ -f /var/run/nginx.pid ]; thenkill -USR1 `cat /var/run/nginx.pid`fiendscript
}

修改狀態(tài)文件

注意,當(dāng)手動(dòng)執(zhí)行logrotate /etc/logrotate.conf時(shí),執(zhí)行之后并不會(huì)切割log文件。

logrotate的工作原理大概是:每次切割操作、或首次切割,會(huì)記錄所有l(wèi)og文件的時(shí)間點(diǎn)在狀態(tài)文件內(nèi) /var/lib/logrotate/status。

下一次執(zhí)行的時(shí)候,如果判斷時(shí)間減去記錄的時(shí)間已經(jīng)超過(guò)一定時(shí)長(zhǎng)(配置的時(shí)間),那么就會(huì)執(zhí)行切割。

所以如果你想馬上切割,需要自己修改狀態(tài)文件,把時(shí)間改為1天前,再執(zhí)行。

修改狀態(tài)文件vim /var/lib/logrotate/status

logrotate state -- version 2
"/var/log/nginx/error.log" 2023-8-7-22:35:37
"/var/log/nginx/access.log" 2023-8-7-22:35:37

交互執(zhí)行日志輪轉(zhuǎn)logrotate -vf /etc/logrotate.d/nginx

root@75e7c81b599d:/# logrotate -vf /etc/logrotate.d/nginx
reading config file /etc/logrotate.d/nginx
Creating stub state file: /var/lib/logrotate/status
Reading state from file: /var/lib/logrotate/status
Allocating hash table for state file, size 64 entriesHandling 1 logsrotating pattern: /var/log/nginx/*.log  forced from command line (7 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/nginx/access.log
Creating new stateNow: 2023-08-07 22:35Last rotated at 2023-08-07 22:00log needs rotating
considering log /var/log/nginx/error.log
Creating new stateNow: 2023-08-07 22:35Last rotated at 2023-08-07 22:00log needs rotating
rotating log /var/log/nginx/access.log, log->rotateCount is 7
dateext suffix '-20230807'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
rotating log /var/log/nginx/error.log, log->rotateCount is 7
dateext suffix '-20230807'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
renaming /var/log/nginx/access.log to /var/log/nginx/access.log-20230807
creating new /var/log/nginx/access.log mode = 0644 uid = 101 gid = 0
renaming /var/log/nginx/error.log to /var/log/nginx/error.log-20230807
creating new /var/log/nginx/error.log mode = 0644 uid = 101 gid = 0
running postrotate script

發(fā)現(xiàn)指定目錄下的日志已經(jīng)變成了:

-rw-r--r-- 1  101 root 40745 Aug  7 22:41 access.log
-rw-r--r-- 1 root root  3173 Aug  7 14:32 access.log-20230806
-rw-r--r-- 1  101 root 61823 Aug  7 22:31 access.log-20230807
-rw-r--r-- 1  101 root   357 Aug  7 22:37 error.log
-rw-r--r-- 1 root root  2635 Aug  7 14:49 error.log-20230806
-rw-r--r-- 1  101 root 15466 Aug  7 22:35 error.log-20230807

配合定時(shí)任務(wù)完成每天輪轉(zhuǎn)

啟動(dòng)定時(shí)任務(wù)

service cron start

crontab語(yǔ)法

crontab [-u user] file
或者
crontab [-u user] [ -e | -l | -r ]

參數(shù)說(shuō)明:

  • -u user 是指設(shè)定指定 user 的時(shí)程表,這個(gè)前提是你必須要有其權(quán)限(比如說(shuō)是 root)才能夠指定他人的時(shí)程表。如果不使用 -u user 的話,就是表示設(shè)定自己的時(shí)程表。
  • -e 執(zhí)行文字編輯器來(lái)設(shè)定時(shí)程表
  • -l 列出目前的時(shí)程表
  • -r 刪除目前的時(shí)程表(慎用)

設(shè)置每天0點(diǎn)執(zhí)行日志輪轉(zhuǎn)

crontab -e

在彈出的編輯器內(nèi)輸入如下內(nèi)容:

59 23 * * * /usr/sbin/logrotate -f /home/zmq/daily_logrotate

crontab -l查看當(dāng)前定時(shí)任務(wù):

root@75e7c81b599d:/# crontab -l
# Edit this file to introduce tasks to be run by cron.
# 
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
# 
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
# 
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
# 
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
# 
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
# 
# For more information see the manual pages of crontab(5) and cron(8)
# 
# m h  dom mon dow   command
59 23 * * * /usr/sbin/logrotate -f /etc/logrotate.d/nginx
http://aloenet.com.cn/news/37929.html

相關(guān)文章:

  • 工商局網(wǎng)站如何做網(wǎng)登2022十大網(wǎng)絡(luò)營(yíng)銷(xiāo)案例
  • php小程序商城青島谷歌優(yōu)化
  • 上海網(wǎng)站建設(shè)公司價(jià)格深圳網(wǎng)站seo服務(wù)
  • 已有網(wǎng)站開(kāi)發(fā)app終端愛(ài)站工具網(wǎng)
  • 做資料網(wǎng)站是自己建服務(wù)器好還是租用好網(wǎng)絡(luò)營(yíng)銷(xiāo)活動(dòng)策劃方案模板
  • 廣東室內(nèi)設(shè)計(jì)公司排名內(nèi)江seo
  • 商丘加盟小吃網(wǎng)站東莞做網(wǎng)站優(yōu)化
  • 專(zhuān)做外貿(mào)庫(kù)存的網(wǎng)站天橋區(qū)seo全網(wǎng)宣傳
  • 廣州疫情防控博客seo優(yōu)化技術(shù)
  • 接網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)網(wǎng)站代發(fā)外鏈
  • 浙江做公司網(wǎng)站多少錢(qián)百度網(wǎng)盤(pán)網(wǎng)頁(yè)版登錄入口官網(wǎng)
  • 網(wǎng)站備案找回百度知道首頁(yè)官網(wǎng)
  • 建筑材料批發(fā)網(wǎng)站總裁培訓(xùn)班
  • 沈陽(yáng)網(wǎng)站建設(shè)公司的公司百度搜索引擎提交入口
  • 網(wǎng)站開(kāi)發(fā)建設(shè)需要什么網(wǎng)頁(yè)版百度云
  • app手機(jī)電視網(wǎng)站設(shè)計(jì)方案網(wǎng)絡(luò)營(yíng)銷(xiāo)講師
  • 網(wǎng)站建設(shè)維護(hù)協(xié)議中山網(wǎng)站seo
  • 觀看床做視頻網(wǎng)站網(wǎng)站seo推廣方案
  • 滄縣網(wǎng)站制作蘭州搜索引擎優(yōu)化
  • 網(wǎng)站建設(shè)修改建議書(shū)店鋪如何運(yùn)營(yíng)和推廣
  • 小游戲大全網(wǎng)站論壇企業(yè)推廣
  • wordpress程序圖片打開(kāi)慢成都比較靠譜的seo
  • 企業(yè)網(wǎng)站搭建流程國(guó)內(nèi)新聞?wù)?/a>
  • 深圳小程序開(kāi)發(fā)費(fèi)用南京百度搜索優(yōu)化
  • 免費(fèi)永久網(wǎng)站建設(shè)網(wǎng)絡(luò)營(yíng)銷(xiāo)的8個(gè)基本職能
  • 網(wǎng)站建設(shè)需要用到哪些軟件周口網(wǎng)絡(luò)推廣哪家好
  • 安徽展覽展示公司排名無(wú)線網(wǎng)絡(luò)優(yōu)化
  • 設(shè)計(jì)網(wǎng)站如何推廣方案百度怎么做關(guān)鍵詞優(yōu)化
  • 黃頁(yè)模式優(yōu)化人員配置
  • 直播系統(tǒng)平臺(tái)搭建佛山網(wǎng)站設(shè)計(jì)實(shí)力樂(lè)云seo