Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- from collections import Counter
- import gzip
- import glob
- import sys
- from os.path import join
- def get_ips(file):
- if file.endswith('.gz'):
- opener = gzip.open
- else:
- opener = open
- with opener(file, 'rt') as fd:
- text = fd.read()
- return Counter(line.split()[0] for line in text.splitlines())
- def all_ips(pattern):
- counter = Counter()
- for file in glob.glob(pattern):
- counter += get_ips(file)
- return counter
- if __name__ == '__main__':
- if len(sys.argv) != 2:
- print(sys.argv[0], "'access-log-pattern'")
- sys.exit(1)
- counter = all_ips(join('/var/log/nginx/', sys.argv[1]))
- fmt = 'IP: {:40s} N: {}'
- for ip, n in counter.most_common(10):
- print(fmt.format(ip, n))
Add Comment
Please, Sign In to add comment