32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
import paramiko
|
|
import sys
|
|
|
|
sys.stdout.reconfigure(encoding='utf-8')
|
|
|
|
KEY_FILE = r'C:\Users\Snarf\.ssh\id_ed25519_snarfnet'
|
|
spaceport_nodes = [
|
|
('sninfr0lnxctl01', '140.44.4.41'),
|
|
('sninfr0lnxctl02', '140.44.4.42'),
|
|
('sninfr0lnxctl03', '140.44.4.43'),
|
|
('sninfr0lnxctl04', '140.44.4.44'),
|
|
('sninfr0lnxwrk01', '140.44.4.51'),
|
|
('sninfr0lnxwrk02', '140.44.4.52'),
|
|
('sninfr0lnxwrk03', '140.44.4.53'),
|
|
('sninfr0lnxwrk04', '140.44.4.54'),
|
|
('sninfr0lnxwrk05', '140.44.4.55'),
|
|
('sninfr0lnxwrk06', '140.44.4.56')
|
|
]
|
|
|
|
for name, ip in spaceport_nodes:
|
|
try:
|
|
ssh = paramiko.SSHClient()
|
|
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
ssh.connect(ip, username='root', key_filename=KEY_FILE, timeout=5)
|
|
stdin, stdout, stderr = ssh.exec_command('apt list --upgradable 2>/dev/null | grep -v "Listing" | wc -l')
|
|
cnt = stdout.read().decode().strip()
|
|
print(f"[{name}] ({ip}): {cnt} packages upgradeable")
|
|
ssh.close()
|
|
except Exception as e:
|
|
print(f"[{name}] ({ip}): Error connecting: {e}")
|
|
|