Je veux connaître le nombre d'accès par seconde pendant une journée, mais les secondes où il n'y a pas d'accès avec "uniq -c" etc. manquent, alors j'ai décidé d'essayer Nantoka.
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()
Passer les heures, minutes et secondes du journal du serveur Web
$ cat /var/log/httpd/access_log | cut -d" " -f4 | cut -d":" -f2- | python hits.py
Lorsque j'organisais le SSD, j'ai trouvé un faux script que j'ai fait il y a peu de temps, alors je l'ai mis sur Qiita. Je voulais connaître le nombre d'accès par seconde à partir du journal Apache, j'ai donc utilisé la commande "uniq -c" pour compter le nombre, mais quand j'y ai bien réfléchi, les secondes sans accès ont été omises au lieu de "0". C'est assez naturel ... (J'ai commencé à remarquer que je vais faire 86400, même si j'ai compté le nombre d'accès par seconde pendant une journée)
Donc, j'ai fait le script suivant de manière appropriée. C'est assez difficile, mais je me suis souvenu que j'étais capable de le faire.