Kā es varu ģenerēt Nginx žurnāla faila datus vienam vai vairākiem testa (ierakstītāja) domēniem testa serverī? Es vēlos būtībā atdarināt tiešsaistes vietni, kurā tiek reģistrēta regulāra datplūsma, bet nenodrošinot likumīgu vietni.

Esmu sākusi mācīties logrotate un es to pielāgoju vietnēm savos serveros. Lai pilnīgāk saprastu, kā tas darbojas, es ideāli vēlos atkārtot žurnālfailu ierakstus tā, it kā testa domēni būtu reālas vietnes, neatverot domēnus lielākai auditorijai, jo tie šim nolūkam būtībā ir vienreizlietojami domēni.

Man ir pilnīga (root) piekļuve manam VPS, man ir iestatīts Nginx, kā es to vēlos, testa domēni visi ir tīmekļa, nevis iekšējie, un man ir žurnālfaili, kas laika gaitā tikai palielinās ... tāpēc ir vajadzība priekš logrotate.

Man nav vajadzīgs etalonu, vienlaicīguma vai slodzes pārbaudes rīks tradicionālā nozīmē, jo es nevēlos nomākt serveri, tāpēc kaut kas līdzīgs ab vai siege kas var darboties pilienveida-pilināmā-pilināmā režīmā, varētu būt izpētes ceļš.

Jūs varēja noteikti izmantojiet kaut ko līdzīgu ab vai siege - bet tas, šķiet, ir daudz darba ar nelielu labumu, vismaz ņemot vērā to, ko jūs mēģināt paveikt.

Ja es būtu tu, es vienkārši izveidotu dažus nejaušus / tukšus failus. Piešķiriet viņiem pareizo vārdu un ievietojiet tos īstajā vietā un logrotate vajadzētu darīt savu darbu normāli - tam vispār nav svarīgi, kāds ir failu saturs, kas ir jēga, jo žurnāla faili dažādiem pakalpojumiem vai pat viena un tā paša pakalpojuma lietotājiem var izskatīties atšķirīgi.

Vienkāršāk jums var pietikt ar kaut ko tādu:

touch /var/log/nginx/access.log

Vai arī, ja vēlaties iegūt nelielu mīļotāju, žurnāla failam pievienojiet datumu / laiku, lai varētu izsekot, kad žurnāli faktiski tiek pagriezti. Jūs varētu ievietot kaut ko līdzīgu šim kontam, ļaujot tam darboties katru minūti / stundu / neatkarīgi:

echo `date` >> /var/log/nginx/access.log

Es domāju, ka, ja jūs vēlaties iegūt savus viltus žurnālus Skaties vairāk kā īsti žurnāli, jūs varētu darīt kaut ko līdzīgu:

# Generate Random IP Address IP_ADDRESS='$(( $RANDOM % 254 + 1 )).$(( $RANDOM % 254 + 1 )).$(( $RANDOM % 254 + 1 )).$(( $RANDOM % 254 + 1 ))' # Get the current date/time NOW=$(date +'%d/%b/%Y:%H:%M:%S') # Append a fake entry to the log file echo '$IP_ADDRESS - - [$NOW +0000] \'GET / HTTP/2.0\' 200 5316 \'https://example.com/\' \'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36\' \'-\'' >> /var/log/nginx/access.log 

Iepriekšminētais izveidos rindas, kas izskatās šādi, izmantojot nejauši ģenerētu IP adresi un pašreizējo datumu / laiku:

79.139.188.5 - - [23/Sep/2020:16:07:54 +0000] 'GET / HTTP/2.0' 200 5316 'https://example.com/' 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36' '-'

Tomēr, veidojot savus žurnālus Skaties tāpat kā reāli žurnāli man šķiet pārspīlēti, un manam domāšanas veidam tas tikai padarīs atkļūdošanu sarežģītāku, nekā tikai datuma / laika pievienošana failam.

Viss, kas teica, ja jūs pagriežat žurnālus, pamatojoties uz faila lielumu, varat izmantot kaut ko līdzīgu truncate komandu ģenerēt dažāda lieluma failus. Piemēram, šī komanda izveido 4 MB failu:

truncate -s 4M /var/log/nginx/access.log

Skaidrs, ka neviena no šīm opcijām faktiski nemodulē Nginx žurnālus, bet atkal tas nav jāpārbauda logrotate. Visbeidzot, jums var būt noderīgi arī izmantot --force opcija logrotate lai jūs uzreiz redzētu, kā jūsu žurnāli tiks pagriezti. (Skatīt: https://www.shellhacks.com/logrotate-force-log-rotation/).

Veiksmi!

  • 2 Šī ir jūsu trešā atbilde šeit, tāpat kā abas pārējās, tā ir ārkārtīgi kvalitatīva. Paldies, ka veltījāt laiku, lai uzrakstītu tik labas atbildes, un laipni lūdzam šajā vietnē!

strādāja par jums: Charles Robertson | Vēlies ar mums sazināties?