Am jurnalele de acces de pe serverul meu. Trebuie să iau diferența de timp dintre două jurnale. Jurnalele mele de acces au următorul format de oră: „14/Apr/2021 06:25:09”.
Pentru a lua diferența dintre două marcaje de timp, m-am gândit să convertesc marcajele de timp date în secunde de la epocă și apoi să iau diferența.
Exemplu de jurnal de acces:
106.222.52.107 - - [14/Apr/2021:06:25:06 -0400] „POST URL1 HTTP/1.1” 204 4649 708 „Mozilla/5.0 (Linux; Android 11; V2037) AppleWebKit/5.037) Apple7WebKit/5. ) Chrome/83.0.4103.106 Mobile Safari/537.36"
157.34.255.192 - - [14/Apr/2021:06:25:08 -0400] „GET URL2 200 5309 1125 „Mozilla/5.0 (Linux; Android 7.1.1; CPH1729 Build/N6K36Q5HTML, Apple, like. Gecko) Chrome/61.0.3163.98 Mobile Safari/537.36"
1.38.48.202 - - [14/Apr/2021:06:25:10 -0400] „GET URL3 HTTP/1.1” 200 8692 64616 „Mozilla/5.0 (iPhone; CPU iPhone OS 14_4_2 ca Mac OS X) AppleWeb.1./605. 15 (KHTML, ca Gecko) Versiunea/14.0.3 Mobile/15E148 Safari/604.1"
106.222.52.107 - - [14/Apr/2021:06:28:06 -0400] URL4 200 10506 1063 „Mozilla/5.0 (Linux; Android 11; V2037) AppleWebKit/537.36 (K)Chrome/537.36 (K.03.04)HTML/like Gec.ko.01 Safari mobil/537,36"
157.34.255.192 - - [14/Apr/2021:06:29:06 -0400] URL5 200 620 866 "Mozilla/5.0 (Linux; Android 7.1.1; CPH1729 Build/N6F26Q/5K3, like HTML) Apple7Kc6. Chrome/61.0.3163.98 Mobile Safari/537.36"
Deci vreau să convertesc „14/Apr/2021:06:25:06” în secunde de la epocă.
Folosesc comanda dată pentru a converti marca temporală dată în secunde. Mai jos este comanda:
data „+%s” -d="14/Apr/2021 06:25:09"
Dă următoarea eroare:
data: dată nevalidă â=14/Apr/2021 06:25:09â
Dar cand Schimb pozițiile pe zi și pe lună atunci merge bine.
data „+%s” -d „14/04/2021 06:25:09” Ieșire: 1618399509
Comanda de dată are un format predefinit? Modificarea formatului de marcaj de timp în jurnalele de acces este dificilă. Ați putea vă rog să oferiți soluția pentru asta? Trebuie să scriu un script shell în care trebuie să citesc jurnalele de acces și, în funcție de IP și de marcaj de timp, trebuie să creez un alt fișier de date.
Eu folosesc Ubuntu 20.