收集linux网络配置信息的shell脚本

此脚本已在CentOS/ RHEL和Fedora Linux操作系统下进行测试过。
可用于当前网络配置信息。

代码:

#!/bin/bash
#
HWINF=/usr/sbin/hwinfo
IFCFG=/sbin/ifconfig
IP4FW=/sbin/iptables
IP6FW=/sbin/ip6tables
LSPCI=/sbin/lspci
ROUTE=/sbin/route
NETSTAT=/bin/netstat
LSB=/usr/bin/lsb_release

## files ##
DNSCLIENT="/etc/resolv.conf"
DRVCONF="/etc/modprobe.conf"
NETALIASCFC="/etc/sysconfig/network-scripts/ifcfg-eth?-range?"
NETCFC="/etc/sysconfig/network-scripts/ifcfg-eth?"
NETSTATICROUTECFC="/etc/sysconfig/network-scripts/route-eth?"
SYSCTL="/etc/sysctl.conf"

## Output file ##
OUTPUT="network.$(date +‘%d-%m-%y‘).info.txt"

## Email info to?? ##
SUPPORT_ID="[email protected]"

chk_root(){
 local meid=$(id -u)
 if [ $meid -ne 0 ];
 then
  echo "您必须是root用户才能运行此工具"
  exit 999
 fi
}

write_header(){
 echo "---------------------------------------------------" >> $OUTPUT
 echo "[email protected]" >> $OUTPUT
 echo "---------------------------------------------------"  >> $OUTPUT
}

dump_info(){
 echo "* Hostname: $(hostname)" >$OUTPUT
 echo "* Run date and time: $(date)" >>$OUTPUT

 write_header "Linux Distro"
 echo "Linux kernel: $(uname -mrs)" >>$OUTPUT
 $LSB -a >> $OUTPUT 

 [ -x ${HWINF} ] && write_header "${HWINF} --network_ctrl"
 [ -x ${HWINF} ] && ${HWINF} --network_ctrl >> $OUTPUT

 [ -x ${HWINF} ] && write_header "${HWINF} --isapnp"
 [ -x ${HWINF} ] && ${HWINF} --isapnp >> $OUTPUT

 write_header "PCI Devices"
 ${LSPCI} -v >> $OUTPUT

 write_header "$IFCFG Output"
 $IFCFG >> $OUTPUT

 write_header "Kernel Routing Table"
 $ROUTE -n >> $OUTPUT

 write_header "网卡驱动程序的配置 $DRVCONF"
 [ -f $DRVCONF ] && grep eth $DRVCONF  >> $OUTPUT || echo "Error $DRVCONF file not found."  >> $OUTPUT

 write_header "DNS $DNSCLIENT 配置信息"
 [ -f $DNSCLIENT ] && cat $DNSCLIENT >> $OUTPUT || echo "Error $DNSCLIENT file not found." >> $OUTPUT

 write_header "网络配置文件信息"
 for f in $NETCFC
 do
  if [ -f $f ]
  then
   echo "** $f **" >> $OUTPUT
   cat $f >> $OUTPUT
  else
   echo "Error $f not found." >> $OUTPUT
  fi
 done 

 write_header "Network Aliase File"
 for f in $NETALIASCFC
 do
  if [ -f $f ]
  then
   echo "** $f **" >> $OUTPUT
   cat $f >> $OUTPUT
  else
   echo "Error $f not found." >> $OUTPUT
  fi
 done 

 write_header "网络静态路由配置"
 for f in $NETSTATICROUTECFC
 do
  if [ -f $f ]
  then
   echo "** $f **" >> $OUTPUT
   cat $f >> $OUTPUT
  else
   echo "Error $f not found." >> $OUTPUT
  fi
 done 

 write_header "IP4防火墙配置"
 $IP4FW -L -n >> $OUTPUT

 write_header "IP6防火墙配置"
 $IP6FW -L -n  >> $OUTPUT

 write_header "网络状态"
 $NETSTAT -s >> $OUTPUT

 write_header "Network Tweaks via $SYSCTL"
 [ -f $SYSCTL ] && cat $SYSCTL >> $OUTPUT || echo "Error $SYSCTL not found." >>$OUTPUT

 echo "网络配置信息被写入文件: $OUTPUT. 请发邮件到: $SUPPORT_ID."
}

chk_root
dump_info
时间: 2024-10-18 22:09:33

收集linux网络配置信息的shell脚本的相关文章

Linux网络配置及SSH和Shell基础

Linux网络配置及SSH和Shell基础 一.Linux网络配置     ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数.用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在.要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了. 二.hosts文件的作用及修改主机名      Hosts : The static table lookup for host name(主机名查询静态表)       Linux 的/etc/hosts是

Linux网络配置知识点详解

Linux网络配置知识点详解 一.Linux网络配置 1.网络配置文件 (1)/etc/sysconfig/network-scripts/ifcfg-en0xxx文件 用来指定服务器上的网络配置信息 (2)/etc/hostname文件 包含了Linux系统的主机名 (3)/etc/resolv.conf文件 文件配置了DNS客户,包含了主机的域名搜索顺序和DNS服务器地址 (4)/etc/hosts IP地址和主机名映射 (5)/etc/host.conf 和主机名解析顺序 (6)/etc/

linux c程序中获取shell脚本输出的实现方法

linux c程序中获取shell脚本输出的实现方法 1. 前言Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作.比如实现一个ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令呢?通常在程序中通过 system函数来调用shell命令.但是,system函数仅返回命令是否执行成功,而我们可能需要获得shell命令在控制台上输出的结果.例如,执行外部

Linux网络配置详解

1.前言 对于LINUX而言,如果我们想对其进行网络配置的话,那么主要涉及到如下方面的配置: IP,子网掩码,网关,主机名,DNS服务器地址,路由信息. 那么下面,将对这些方面进行操作配置.如果大家对网络的有关知识,不太清楚的,可以参考我的博客:http://zhangfengzhe.blog.51cto.com/8855103/1438163 [这篇博客将快速让大家了解一些概念] 2.关于ifconfig [[email protected] ~]# ifconfig eth0      Li

解决遇到Linux网络配置,从熟悉网络配置文件入手

如果接触过Linux,网络配置是一个比较棘手的问题.但是Linux是文件为基础来构建的系统,包括我们windows中设备,Linux也视为文件.所以只要我们明白文件的作用.就能对Linux更加的熟悉,网络配置也是.所以为了熟悉和解决遇到Linux网络配置,首先从网络配置文件入手.这里面整理和汇集较多资料,从多角度,多篇文章,希望能耐心看完.一.简要概述DNS配置文件[[email protected] etc]# cat /etc/resolv.conf nameserver 210.36.16

[转帖]LINUX网络配置---nmtui&nmcli

LINUX网络配置---nmtui&nmcli https://blog.51cto.com/13625527/2151853?source=dra 两年前曾经打打印过 几页命令 里面就有 nmcli 和 nmtui 但是一直记不住... 这次再加深一下 但是我感觉 我还是记不住.. 进击的闪电关注0人评论2686人阅读2018-07-29 19:08:56 网络配置方法要使用NetworkManager的文本用户界面工具nmtui配置接口要使用NetworkManager的命令行工具nmcli

Linux网络管理——linux网络配置

2. linux网络配置 .note-content {font-family: "Helvetica Neue",Arial,"Hiragino Sans GB","STHeiti","Microsoft YaHei","WenQuanYi Micro Hei",SimSun,Song,sans-serif;} .note-content h2 {line-height: 1.6; color: #0AA

Linux网络配置之二ip、ss、网络相关配置文件

本文续网络基础与Linux网络配置之一 ifconfig.route.netstat命令详解 ip命令 作用ip是iproute2软件包里面的一个强大的网络配置工具,它能够替代一些传统的网络管理工具,例如ifconfig.route等,使用权限为超级用户.几乎所有的Linux发行版本都支持该命令. 格式ip [ OPTIONS ] OBJECT { COMMAND | help }   OBJECT := { link | addr | route | netns  } 注:OBJECT可简写,

linux网络配置命令(一)——ifconfig

linux网络配置命令(一)--ifconfig ifconfig 查看.配置网卡信息.已过时,推荐使用ip命令 格式:  ifconfig [interface]                                                         查看指定网卡信息,可不指定 ifconfig interface [aftype] options | address ...   设置指定网卡信息 选项 interface        网卡名 up