Вот небольшой скрипт на python, который должен быть достаточно надежным и легко расширяемым:
#!/usr/bin/env python
import sys, os
from datetime import datetime
try:
if not os.path.isfile(sys.argv[1]):
sys.stderr.write("[Error]: %s is not a file\n" % sys.argv[1])
sys.exit(1)
except IndexError:
sys.stderr.write("Usage: parse_squid_log.py access.log\n")
sys.exit(1)
with open(sys.argv[1]) as log:
for line in log:
line = line.split(' ')
line[0] = str(datetime.fromtimestamp(float(line[0])))
print ' '.join(line).strip()
Сохраните его в файл, такой как parse_squid_log
и убедитесь, что он является исполняемым файлом chmod +x parse_squid_log
и находится на вашем path
.
Использование:
$ parse_squid_log
Usage: parse_squid_log.py access.log
$ parse_squid_log abc
[Error]: abc is not a file
$ parse_squid_log /var/log/squid3/access.log
2013-07-23 05:19:26.136000 929 185.168.101.131 TCP_MISS/200 28198 ...
2013-07-23 05:23:07.488000 0 10.42.0.14 TCP_IMS_HIT/304 278 GET ...
2014-05-08 13:49:47.488000 0 10.42.0.14 TCP_IMS_HIT/304 278 GET ...