经常使用python检测服务器是否能ping通, 程序是否正常运行(检测对应的端口是否正常)
以前使用shell脚本的写法如下:
复制代码 代码如下:
PINGRET=$( ping www.baidu.com -c 2 | grep "icmp_" ); if [ -z $PINGRET ]; then echo "ping fail"; else echo "ping ok"; fi
或者
复制代码 代码如下:
ping -c 2 www.baidu.com|grep "icmp_" && echo 'ping ok' || echo 'ping fail'
代码示例:
复制代码 代码如下:
#!/usr/bin/python
# encoding=utf-8
# Filename: net_is_normal.py
import os
import socket
import subprocess
#判断网络是否正常
server='www.baidu.com'
#检测服务器是否能ping通,在程序运行时,会在标准输出中显示命令的运行信息
def pingServer(server):
result=os.system('ping '+server+' -c 2')
if result:
print '服务器%s ping fail' % server
else:
print '服务器%s ping ok' % server
print result
#把程序输出定位到/dev/null,否则会在程序运行时会在标准输出中显示命令的运行信息
def pingServerCall(server):
fnull = open(os.devnull, 'w')
result = subprocess.call('ping '+server+' -c 2', shell = True, stdout = fnull, stderr = fnull)
if result:
print '服务器%s ping fail' % server
else:
print '服务器%s ping ok' % server
fnull.close()
#可用于检测程序是否正常,如检测redis是否正常,即检测redis的6379端口是否正常
#检测ssh是否正常,即检测ssh的22端口是否正常
def check_aliveness(ip, port):
sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sk.settimeout(1)
try:
sk.connect((ip,port))
print 'server %s %d service is OK!' %(ip,port)
return True
except Exception:
print 'server %s %d service is NOT OK!' %(ip,port)
return False
finally:
sk.close()
return False
if __name__=='__main__':
pingServerCall(server)
pingServer(server)
check_aliveness('192.168.230.128', 6379)
检测服务器
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
更新日志
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]