Таким образом, я выгружаю выходные данные от ASA для anyconnect.Я записываю это в файл, а затем снова записываю в программу.Я открываю csv из имен пользователей за день до того, чтобы попытаться выяснить, подключен ли кто-то новый.Проблема в моей логике.Я не могу понять, как сравнить каждого пользователя (строку) в файле csv с каждой строкой из выходных данных, и если ни один из них не находится в строке, то выведите строку.Мой код найдет пользователя не в строке, а напечатает строку, если строка содержит пользователя в моем списке.Например, у меня есть usrA и usrB, если usrA не в строке, а usrB в строке, она напечатает его, даже если в моем списке есть usrB.
def compare(e):
with open("anyconnect.csv", 'r') as usrf:
for user in usrf:
if user not in line:
print(line)
def asa1(asaip0):
device = {
'device_type': 'cisco_asa',
'ip': asaip0,
'username': ("username"),
'password': ("password"),
'secret': ("password"),
'port': 22,
}
with open(asaip0 + ".txt", 'w') as of:
with open("log.csv", 'w') as log:
net_connect = netmiko.ConnectHandler(**device)
output = net_connect.send_command("show logging | grep LOCAL")
of.writelines(output)
log.writelines(output)
log.close()
with open("log.csv", 'r') as log:
for line in log:
compare(line)
###### MAIN ######
if __name__ == "__main__":
asa1 = ('10.210.92.4')
asa2 = ('10.210.109.4')
ips = (asa1, asa2)
asa1(asa1)
asa1(asa2)