Tôi có nhật ký truy cập từ máy chủ của mình. Tôi cần lấy chênh lệch thời gian giữa hai nhật ký. Nhật ký truy cập của tôi có định dạng thời gian như sau: "14/Apr/2021 06:25:09".
Để lấy sự khác biệt giữa hai dấu thời gian, tôi nghĩ sẽ chuyển đổi các dấu thời gian đã cho thành giây kể từ Epoch và sau đó lấy sự khác biệt.
Ví dụ về nhật ký truy cập:
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/537.36 (KHTML, như Gecko ) Chrome/83.0.4103.106 Mobile Safari/537.36"
157.34.255.192 - - [14/Apr/2021:06:25:08 -0400] "NHẬN URL2 200 5309 1125" Mozilla/5.0 (Linux; Android 7.1.1; CPH1729 Build/N6F26Q) AppleWebKit/537.36 (KHTML, như Tắc kè) Chrome/61.0.3163.98 Mobile Safari/537.36"
1.38.48.202 - - [14/Apr/2021:06:25:10 -0400] "NHẬN URL3 HTTP/1.1" 200 8692 64616 "Mozilla/5.0 (iPhone; CPU iPhone OS 14_4_2 như Mac OS X) AppleWebKit/605.1. 15 (KHTML, như Gecko) Phiên bản/14.0.3 Di động/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 (KHTML, như Gecko) Chrome/83.0.4103.106 Mobile Safari/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) AppleWebKit/537.36 (KHTML, như Gecko) Chrome/61.0.3163.98 Mobile Safari/537.36"
Vì vậy, tôi muốn chuyển đổi "14/Apr/2021:06:25:06" trong vài giây kể từ epoch.
Tôi đang sử dụng lệnh ngày để chuyển đổi dấu thời gian đã cho trong vài giây. Sau đây là lệnh:
ngày "+%s" -d="14/Apr/2021 06:25:09"
Nó đưa ra lỗi sau:
ngày: ngày không hợp lệ â=14/Apr/2021 06:25:09â
Nhưng khi Tôi hoán đổi vị trí ngày và tháng sau đó nó hoạt động tốt.
ngày "+%s" -d "14/04/2021 06:25:09" Kết quả: 1618399509
Liệu lệnh ngày có một số định dạng được xác định trước? Khó thay đổi định dạng dấu thời gian trong nhật ký truy cập. Bạn có thể vui lòng cung cấp giải pháp cho việc này? Tôi cần viết một tập lệnh shell trong đó tôi cần đọc nhật ký truy cập và tùy thuộc vào IP và dấu thời gian mà tôi cần tạo một tệp dữ liệu khác.
Tôi đang sử dụng Ubuntu20.