基本上,我编写了一个脚本,该脚本使用python和一个名为paramiko的SSH库重新启动服务器。我的脚本可以正常运行,但是我不知道它是否实际上正在重新引导服务器,因为服务器不在办公室内。有没有一种方法可以打印并输出“证明”,表明服务器实际上正在重新引导?对于使用python通过SSH向网络设备发出命令,我有些陌生。
我确实确实运行了我的代码,并且它按预期运行,但是我还没有进行测试来查看服务器是否确实在打开和关闭。
无需复制和粘贴我的所有代码,但是有两个非常重要的功能:
def connectToSSH(deviceIP, deviceUsername, devicePassword):
ssh_port = 22
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(deviceIP, ssh_port, deviceUsername, devicePassword)
time.sleep(5)
return ssh
def reboot_server(ssh):
prompt = raw_input('Are you sure you want to reboot this server ?')
if prompt.lower() == 'y' or prompt.lower() == 'n':
print('Proceeding to reboot the switch\n')
else:
print('Proceeding to exit the program\n')
sys.exit(-1)
channel = ssh.invoke_shell()
ssh.exec_command("/sbin/reboot -f > /dev/null 2>&1 &") # executes command to reboot server , is this the right command ? I found this on another stackOverflow post ?
channel.close()
print("Please wait for server to be rebooted")
我没有收到任何编译错误,但是我想确保该命令:
ssh.exec_command("/sbin/reboot -f > /dev/null 2>&1 &")
实际上是在重新引导服务器。如果是的话,有什么办法可以打印/输出重新启动的证明?如果是这样,我该怎么做?