[英]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.