From ecae0f066e83b596bc3a590baa1968fa1666ad19 Mon Sep 17 00:00:00 2001 From: Kévin Le Gouguec Date: Sat, 27 Mar 2021 21:06:11 +0100 Subject: Add new script to process multiple log files --- admin/stats/renamelogs.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100755 admin/stats/renamelogs.py (limited to 'admin/stats/renamelogs.py') diff --git a/admin/stats/renamelogs.py b/admin/stats/renamelogs.py new file mode 100755 index 0000000..34fbccf --- /dev/null +++ b/admin/stats/renamelogs.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python3 + +from datetime import datetime +from os import rename +from pathlib import Path +import re +from sys import argv + + +ACCESS_RE = re.compile(' '.join(( + r'\S+', + r'\S+', + r'\S+', + r'\[(?P[^:]+):\S+ \S+\]', + r'"GET [^ ?]+(\?\S+)? [^"]+"', + r'200 [0-9]+', + r'"[^"]+(\?\S+)?"', + r'"[^"]+"' +))) + +DATE_FMT = '%d/%b/%Y' + + +def main(paths): + for p in paths: + with open(p) as f: + date = ACCESS_RE.search(f.read()).group('date') + + date = datetime.strptime(date, DATE_FMT) + new_path = Path(p).with_name(date.strftime('%F')) + rename(p, new_path) + + +if __name__ == '__main__': + main(argv[1:]) -- cgit v1.2.3