@@ -71,6 +71,43 @@ func (s *SshdParser) Parse(logline string) error {
71
71
72
72
// Daily
73
73
dstr := fmt .Sprintf ("%v%v%v" , parsedTime .Year (), fmt .Sprintf ("%02d" , int (parsedTime .Month ())), fmt .Sprintf ("%02d" , int (parsedTime .Day ())))
74
+
75
+ // Check current entry date as oldest if older than the current
76
+ var oldest string
77
+ if oldest , err = redis .String (r .Do ("GET" , "oldest" )); err == redis .ErrNil {
78
+ r .Do ("SET" , "oldest" , dstr )
79
+ } else if err != nil {
80
+ r .Close ()
81
+ return err
82
+ } else {
83
+ // Check if dates are the same
84
+ if oldest != dstr {
85
+ // Check who is the oldest
86
+ parsedOldest , _ := time .Parse ("2006-01-02" , oldest )
87
+ if parsedTime .Before (parsedOldest ) {
88
+ r .Do ("SET" , "oldest" , dstr )
89
+ }
90
+ }
91
+ }
92
+
93
+ // Check current entry date as oldest if older than the current
94
+ var newest string
95
+ if newest , err = redis .String (r .Do ("GET" , "newest" )); err == redis .ErrNil {
96
+ r .Do ("SET" , "newest" , dstr )
97
+ } else if err != nil {
98
+ r .Close ()
99
+ return err
100
+ } else {
101
+ // Check if dates are the same
102
+ if newest != dstr {
103
+ // Check who is the newest
104
+ parsedNewest , _ := time .Parse ("2006-01-02" , newest )
105
+ if parsedTime .After (parsedNewest ) {
106
+ r .Do ("SET" , "newest" , dstr )
107
+ }
108
+ }
109
+ }
110
+
74
111
err = compileStats (s , dstr , "daily" , md ["src" ], md ["username" ], md ["host" ])
75
112
if err != nil {
76
113
r .Close ()
0 commit comments