繁体   English   中英

Python:如何ping服务器?

[英]Python: how to ping a server?

如何从Python内部ping服务器?

我正在尝试使ping脚本正常工作。 我正在使用pxssh登录到服务器,并在登录后对IP地址执行ping操作。 我需要检查是否有任何丢失等。下面是我的脚本,但看到一些错误。任何人都可以帮忙。 我正在使用sendline将命令发送到服务器。

s= pxssh.pxssh()
class DhcpServer:

        def connect(self,**kwargs):
                self.dhcp_server = kwargs.get('dhcp_server',None)
                self.username = kwargs.get('user_name', None)
                self.password = kwargs.get('password',None)
                s.login(self.dhcp_server,self.username,self.password)
                print "Connected to server"

def pingGW(self):
                s.sendline('ping 127.0.0.1 -c 5 > /etc/dhcp/ping.txt')
                s.prompt()
                s.sendline('cd/etc/dhcp/')
                s.prompt()

                str = '100% packet loss'
                jes = open((s.sendline('vi /etc/dhcp/ping.txt')), 'r')
                for line in jes:
                        if re.search(str, line):
                                print 'Cannot reach the gateway'

正确要求后:

def pingGW(self):
                s.sendline('ping 127.0.0.1 -c 5 > /etc/dhcp/ping.txt')
                s.prompt()
                s.sendline('cd /etc/dhcp/')
                s.prompt()

                str = '100% packet loss'
                jes = open((s.sendline('vi /etc/dhcp/ping.txt')), 'r')
                for line in jes:
                        if re.search(str, line):
                                print 'Cannot reach the gateway'

                print "Ping success"

错误信息 :

jes = open((s.sendline('vi /etc/dhcp/ping.txt')),'r')TypeError:强制转换为Unicode:需要字符串或缓冲区,发现整数[jesgeorg @ ins-qasvr-18 lib] $

如果您只想从python内部执行ping操作:

import ping
ping.verbose_ping("example.com")

https://pypi.python.org/pypi/ping/0.2

关于您的原始问题,sendline()并没有您的想法。 它会写入“伪终端”会话,就像有人在打字一样。 您无需执行此操作即可打开文件。

如果要打开文件,只需

fd = open('/etc/dhcp/ping.txt')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM