python檢測(cè)主機(jī)的連通性并記錄到文件的實(shí)例
目錄結(jié)構(gòu)
ping_test/ ├── bin │ ├── ping.py │ ├── ping_run.sh.origin │ └── ping.sh ├── conf │ └── ip.lst ├── logs │ ├── 10.10.37.196_2017-06-28_ping.log │ └── 10.10.62.229_2017-06-28_ping.log └── README.md
代碼
cat bin/ping.py
#!/usr/bin/env python #-*- coding: utf-8 from subprocess import Popen, PIPE import shlex import time import datetime import sys, os basedir = os.path.dirname( os.path.dirname( os.path.abspath(__file__) ) ) cnf = os.path.join( basedir, 'conf', 'ip.lst' ) # print cnf while True: today = datetime.datetime.strftime( datetime.datetime.now(), "%Y-%m-%d" ) with open(cnf) as f: for host in f: host = host.strip() cmd = 'sh ping.sh %s' % host args = shlex.split(cmd) p = Popen(args, stdout=PIPE, stderr=PIPE) stdout, stderr = p.communicate() filename = host + '_%s_ping.log' % today logfile = os.path.join(basedir, 'logs', filename) # print logfile if stdout: with open(logfile, 'ab') as fd: fd.write( stdout ) fd.flush() elif stderr: print('ping lost') time.sleep(1)
cat ping.sh
#!/bin/bash HOST=$1 ping -c 1 ${HOST} | grep 'bytes from' | awk '{print $0"\t" strftime("%T %F", systime())}'
以上這篇python檢測(cè)主機(jī)的連通性并記錄到文件的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章

關(guān)于Python下載大文件時(shí)哪種方式速度更快

利用Python實(shí)現(xiàn)批量下載上市公司財(cái)務(wù)報(bào)表

Python數(shù)據(jù)類型轉(zhuǎn)換詳解

Python使用PyNmap進(jìn)行網(wǎng)絡(luò)掃描的詳細(xì)步驟

Python如何實(shí)現(xiàn)SSH遠(yuǎn)程連接與文件傳輸

Python學(xué)習(xí)筆記之集合的概念和簡(jiǎn)單使用示例

Python?按規(guī)則解析并替換字符串中的變量及函數(shù)(示例代碼)