Ich möchte die Anzahl der Zugriffe pro Sekunde für einen Tag wissen, aber die Sekunden, in denen kein Zugriff mit "uniq -c" usw. vorhanden ist, fehlen. Deshalb habe ich beschlossen, Nantoka auszuprobieren.
hits.py
#!/usr/bin/env python
import sys
def main():
dict = {}
#init dict
for hour in range(24):
for min in range(60):
for sec in range(60):
hhmmdd = '%02d:%02d:%02d' % (hour, min, sec,)
dict[hhmmdd] = 0
#read stdin
for line in sys.stdin:
text = line.rstrip('\n')
dict[text] = dict[text] + 1
#print hit/s
for hour in range(24):
for min in range(60):
for sec in range(60):
hhmmdd = '%02d:%02d:%02d' % (hour, min, sec,)
print '%s %d' % (hhmmdd, dict[hhmmdd])
if __name__ == '__main__':
main()
Übergeben Sie den Stunden-, Minuten- und zweiten Teil des Webserverprotokolls
$ cat /var/log/httpd/access_log | cut -d" " -f4 | cut -d":" -f2- | python hits.py
Als ich SSDs organisierte, kam ein gefälschtes Skript heraus, das ich vor einiger Zeit erstellt hatte, also legte ich es auf Qiita. Ich wollte die Anzahl der Zugriffe pro Sekunde aus dem Apache-Protokoll wissen, also habe ich den Befehl "uniq -c" verwendet, um die Anzahl zu zählen, aber als ich mir das genau überlegte, wurden die Sekunden ohne Zugriff anstelle von "0" weggelassen. Es ist ganz natürlich ... (Ich bemerkte, dass ich 86400 machen werde, obwohl ich die Anzahl der Zugriffe pro Sekunde für einen Tag gezählt hatte.)
Also habe ich das folgende Skript entsprechend erstellt. Es ist ziemlich rau, aber ich erinnerte mich, dass ich es geschafft habe.
Recommended Posts