Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python2
- import re
- import sys
- # COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME
- # systemd 1 0 cwd unknown / (stat: No such file or directory)
- # systemd 1 0 rtd unknown / (stat: No such file or directory)
- # systemd 1 0 txt unknown /usr/lib/systemd/systemd (stat: Resource temporarily unavailable)
- # systemd 1 0 mem REG 254,1 19534244 /usr/lib/systemd/systemd (stat: Resource temporarily unavailable)
- # systemd 1 0 mem REG 254,1 19530388 /usr/lib64/libuuid.so.1.3.0 (stat: Resource temporarily unavailable)
- # systemd-j 1291 0 mem REG 254,1 1572958 /lib64/libselinux.so.1 (stat: Resource temporarily unavailable)
- # ms_pipe_w 1465 330 201 98 unknown socket lstat: No such file or directory) (stat: No such file or directory)
- expr = re.compile("(?P<command>.{9}) (?P<pid>.{5}) (?P<tid>.{5}) (?P<user>.{8}) (?P<fd>.{4}) (?P<type>.{9}) (?P<device>.{6}) (?P<rest>.*)")
- entries = []
- by_key = {}
- by_user = {}
- for line in open(sys.argv[1]):
- line = line.strip()
- if (not line or
- line.startswith("#") or
- "avoiding stat" in line or
- line.startswith("lsof:") or
- "Output information" in line):
- continue
- found = expr.search(line)
- if not found:
- continue
- entry = found.groupdict()
- for key in ("pid", "tid", "user"):
- entry[key] = entry[key].strip()
- # entries.append(entry)
- key = (entry["user"], entry["rest"])
- by_key[key] = by_key.get(key, 0) + 1
- by_sum = {}
- for (user, rest), count in by_key.iteritems():
- by_sum[user] = by_sum.get(user, 0) + count
- by_user.setdefault(user, []).append(rest)
- import pdb; pdb.set_trace()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement