Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Avatar for KuCalc : devops.
Download
50640 views
#!/usr/bin/env python

import os, sys


LOGS = "/home/salvus/logs"

def count(f, s, lines, exclude):
    fname = os.path.join(LOGS, f)
    if not os.path.exists(fname):
        return -1
    if lines:
        c = "tail -n %s %s"%(lines, fname)
    else:
        c = "cat %s"%fname
    c += " | grep '%s' "%s
    if exclude:
       c += " | grep -v '%s'"%exclude
    c += "| wc -l"
    n = int(os.popen(c).read())
    return n

def check(num):
    strings = [('concurrent_warn',num,''),('is taking over',num,''), ('RqlRuntimeError',num,'Connection is closed'), ('There may have been an error creating your account',num,''), ("here was an error signing you in",num,'')]
    for f in sorted(os.listdir(LOGS)):
        if f.startswith('hub') and f.endswith('.log'):
            for s,lines,exclude in strings:
                i = count(f, s, lines, exclude)
                if i > 0:
                    print 'last %s:'%lines, f, i, "'%s'"%s

if len(sys.argv) == 1:
    sys.argv.append('50000')
    sys.argv.append('5000')
    sys.argv.append('500')

for num in sys.argv[1:]:
    check(int(num))