-
Notifications
You must be signed in to change notification settings - Fork 0
/
regular_check.py
104 lines (80 loc) · 2.71 KB
/
regular_check.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
IP = '172.16.6.10'
USER = 'admin'
Password = 'admin'
PORT = '22'
#---------------- Establishing to the device -----------------------#
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy)
try:
ssh.connect(IP, username=USER, password=Password, port=PORT)
connection = ssh.invoke_shell()
connection.send('\nenvironment no more\n')
time.sleep(.5)
print(connection.recv(65000).decode())
connection.send('\nshow log log-id 99 | match "SFF unsupported type" pre-lines 1\n')
time.sleep(.5)
sr_7_2_output = connection.recv(65000).decode()
time.sleep(3)
print('\n\n')
print(str(sr_7_2_output) + '\n')
with open('18122021.txt', 'w') as f:
f.write(sr_7_2_output)
except paramiko.AuthenticationException:
print('Try different info please')
with open("18122021.txt", "r") as f:
lines = f.readlines()
# -------------------------- Finding out log-id number of log and port numbers where "SFF unsupported type" observed----------------------------------#
indices = []
for i in range(len(lines)):
if lines[i][0].isdigit():
indices.append(i)
lines3 = []
lines4 = []
k = 0
j = 0
while True:
v = 0
while indices[j]+v < indices[k+1]:
lines4.append(lines[indices[j]+v])
v = v + 1
if indices[j]+v == indices[k+1]:
lines3.append(lines4)
lines4 = []
j = j + 1
k = k + 1
if k + 1 == len(indices):
break
new_log = []
new_log2 = []
for line16 in lines3:
new_log = line16[0] + line16[2]
new_log2.append(new_log)
pattern = "Port [0-9]*.[0-9].[0-9]*"
port_numbers = []
# ------------------------------- the ports where "SFF unsupported type" observed is shut and no shut as an action ---------------------------------#
for log in new_log2:
port_number = re.findall(pattern, log)
port_numbers.append(port_number)
connection.send('\n/environment no more\n')
time.sleep(.5)
print(connection.recv(65000).decode())
connection.send(f'\nshow {port_numbers3}\n')
time.sleep(.5)
print(connection.recv(65000).decode())
connection.send(f'\n/configure {port_numbers3}\n')
time.sleep(.5)
print(connection.recv(65000).decode())
connection.send(f'\nshutdown\n')
print(f"{port_numbers3} is shut")
time.sleep(.5)
print(connection.recv(65000).decode())
connection.send(f'\nshow {port_numbers3}\n')
time.sleep(.5)
print(connection.recv(65000).decode())
connection.send(f'\nno shut\n')
print(f"{port_numbers3} is no shut")
time.sleep(.5)
print(connection.recv(65000).decode())
connection.send(f'\nshow {port_numbers3}\n')
time.sleep(.5)
print(connection.recv(65000).decode())