diff options
author | We-unite <3205135446@qq.com> | 2024-07-29 14:25:06 +0800 |
---|---|---|
committer | We-unite <3205135446@qq.com> | 2024-07-29 14:25:06 +0800 |
commit | 0deb0b10c28f72f08c330f183ef64d90405b1358 (patch) | |
tree | 257cecc63c0de65d04493ef09e5719747ae89975 /src/deal.go | |
parent | a345258c3082903702c81c6c830ff1fd35758861 (diff) | |
download | godo-0deb0b10c28f72f08c330f183ef64d90405b1358.tar.gz godo-0deb0b10c28f72f08c330f183ef64d90405b1358.zip |
Add write
Diffstat (limited to 'src/deal.go')
-rw-r--r-- | src/deal.go | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/deal.go b/src/deal.go index d3b5da0..56f6d1d 100644 --- a/src/deal.go +++ b/src/deal.go | |||
@@ -65,6 +65,8 @@ func deal() { | |||
65 | go deletePid(cooked) | 65 | go deletePid(cooked) |
66 | case FILEOPEN: | 66 | case FILEOPEN: |
67 | fileOpen(cooked) | 67 | fileOpen(cooked) |
68 | case FILEWRITE: | ||
69 | fileWrite(cooked) | ||
68 | case FILECLOSE: | 70 | case FILECLOSE: |
69 | fileClose(cooked) | 71 | fileClose(cooked) |
70 | } | 72 | } |
@@ -234,3 +236,23 @@ func fileClose(cooked Event) { | |||
234 | "close_timestamp": bson.M{"$exists": false}, | 236 | "close_timestamp": bson.M{"$exists": false}, |
235 | }, bson.M{"$set": bson.M{"close_timestamp": cooked.timestamp}}) | 237 | }, bson.M{"$set": bson.M{"close_timestamp": cooked.timestamp}}) |
236 | } | 238 | } |
239 | |||
240 | func fileWrite(cooked Event) { | ||
241 | // 直接看文件表有无记录 | ||
242 | res, err := fdCol.Finddoc(bson.M{ | ||
243 | "pid": cooked.pid, | ||
244 | "fd": cooked.syscallParam[0], | ||
245 | "close_timestamp": bson.M{"$exists": false}, | ||
246 | }) | ||
247 | if err != nil { | ||
248 | fmt.Printf("Err closing fd %d of pid %d: %v\n", cooked.syscallParam[0], cooked.pid, err) | ||
249 | } | ||
250 | if len(res) == 0 { | ||
251 | return | ||
252 | } | ||
253 | fdCol.UpdateOne(bson.M{ | ||
254 | "pid": cooked.pid, | ||
255 | "fd": cooked.syscallParam[0], | ||
256 | "close_timestamp": bson.M{"$exists": false}, | ||
257 | }, bson.M{"$push": bson.M{"written": cooked.timestamp}}) | ||
258 | } | ||