Python:一个用来批量处理文件违规内容并记录的脚本


Python:一个用来批量处理文件违规内容并记录的脚本

初稿
#!/usr/bin/env python
from glob import glob
if __name__ == "__main__":
            ret = {}
            for f in glob("/home/xinchang.jl/admin_auth/*"):
                    for line in open(f).readlines():
                            if not line or len(line.split()) < 3:
                                    continue
                            user = line.split()[-1]
                            file = f.split("/")[-1]
                            if user.split("@")[0] != file.split("@")[0]:
                                    ret[line.split()[-1]] = file
                            else:
                                    pass
            print ret
第二次修改:
#!/usr/bin/env python
from glob import glob
if __name__ == "__main__":
            ret = {}
            a = 0
            def add_key(username,hostname):
                    global ret
                    if ret.has_key(username):
                            ret[username] += "," + hostname
                    else:
                            ret[username] = hostname
            for f in glob("/home/xinchang.jl/admin_auth/*"):
                    for line in open(f).readlines():
                            if not line or len(line.split()) < 3:
                                    continue
                            elif line.split()[0] == 'ssh-rsa' or line.split()[0] == 'ssh-dss':
                                    user = line.split()[-1]
                                    file = f.split("/")[-1]
                                    if user.split("@")[0] != file.split("@")[0]:
                                            add_key(user,file)
                            else:
                                    pass
            for host_name in ret.keys():
                           print host_name,":"
                           h = ret[host_name].split(",")
                           for host in h:
                                    print "  ",host
第三次修改:
#!/usr/bin/env python
from glob import glob
from optparse import OptionParser
parser = OptionParser(usage="%prog [-f] [-q]",version="%prog 1.0")
parser.add_option("-f","--file",dest="filename",default="filename",type="string")
(options,args) = parser.parse_args()
if __name__ == "__main__":
            ret = {}
            a = 0
            def add_key(username,hostname):
                    global ret
                    if ret.has_key(username):
                            ret[username] += "," + hostname
                    else:
                            ret[username] = hostname
            for f in glob(options.filename):
                    for line in open(f).readlines():
                            if not line or len(line.split()) < 3:
                                    continue
                            elif line.split()[0] == 'ssh-rsa' or line.split()[0] == 'ssh-dss':
                                    user = line.split()[-1]
                                    file = f.split("/")[-1]
                                    if user.split("@")[0] != file.split("@")[0]:
                                            add_key(user,file)
                            else:
                                    pass
            for host_name in ret.keys():
                           print host_name,":"
                           h = ret[host_name].split(",")
                           for host in h:
                                    print "  ",host
最终修订版:
#!/usr/bin/env python
from glob import glob
from optparse import OptionParser
parser = OptionParser(usage="%prog [-f] [-q]",version="%prog 1.1")
parser.add_option("-f","--file",dest="filename",default="filename",type="string")
(options,args) = parser.parse_args()
if __name__ == "__main__":
            ret = {}
            a = 0
            def add_key(username,hostname):
                    global ret
                    if ret.has_key(username):
                            ret[username] += "," + hostname
                    else:
                            ret[username] = hostname
            for f in glob(options.filename + "/*"):
                    for line in open(f).readlines():
                            if not line or len(line.split()) < 3:
                                    continue
                            elif line.split()[0] == 'ssh-rsa' or line.split()[0] == 'ssh-dss':
                                    user = line.split()[-1]
                                    file = f.split("/")[-1]
                                    if user.split("@")[0] != file.split("@")[0]:
                                            add_key(user,file)
                            else:
                                    pass
            for host_name in ret.keys():
                           print host_name,":"
                           h = ret[host_name].split(",")
                           for host in h:
                                    print "  ",host

相关内容