Linux系统运维脚本:shell脚本实现查看本机的多种网络信息

目 录

一、需求说明

二、解决方案

(一)解决思路

(二)方案

三、脚本程序实现

(一)脚本代码

(二)脚本验证

1、脚本编辑

2、给予执行权限

3、运行脚本,查看效果

四、扩展


一、需求++说明++

Linux系统中,想要查看主机名、IP地址、⼦⽹掩码、⽹关、DNS服务器IP地址等信息,需要多个命令实现,并且有很多冗余的信息。需求是写一个脚本实现查看本机的所有这些信息。

二、解决方案

(一)解决思路

这些信息,可以使用不同的命令来实现,比如ip addr, hostname, route等命令;然后采用awk等命令去除多余的信息即可。

对于网关,可能有多个,我们只需要找到默认网关即可。

(二)方案

(1)查询地址和掩码,可以采用ip addr和grep、awk结合的方式实现

(2)主机名就是hostname,直接可以输出

(3)默认网关通过route,grep,awk来实现

(4)dns服务器名字可以通过/etc/resolv.conf,用awk来输出

三、脚本程序实现

直接把脚本写出来,分享给大家。

(一)脚本代码

如下为编写的bash代码:

复制代码
#!/bin/bash
IP=`ip addr show eth0 | grep 'inet ' | awk '{print $2}' | cut -d'/' -f1`
ZW=`ifconfig eth0 | head -2 | tail -1 | awk '{print $4}' `
#GW=`route -n | tail -2 | awk '{print $2}'`
GW=`route -n | grep '^0.0.0.0' | awk '{print $2}'`
HN=`hostname`
DNS=`head -1 /etc/resolv.conf | awk '{print $2}'`
echo ''
echo '本机IP地址是:' $IP
echo '本机掩码是:' $ZW
echo '本机网关是:' $GW
echo '本机主机名是:' $HN
echo '本机DNS是:' $DNS
echo ''

(二)脚本验证

1、脚本编辑

使用编辑器,比如vi,把代码输入进去;

保存这个脚本到一个文件中,比list_sys_info.sh

2、给予执行权限

chmod +x w list_sys_info.sh

3、运行脚本,查看效果

可以运行这个脚本来检查进程的运行情况,如下:

复制代码
[root@ecs-52a1 home]#
[root@ecs-52a1 home]#
[root@ecs-52a1 home]# sh list_sys_info.sh
''
本机IP地址是: 192.168.0.138
本机掩码是: 255.255.255.0
本机网关是: 192.168.0.1
本机主机名是: ecs-52a1
本机DNS是: Generated

[root@ecs-52a1 home]#
[root@ecs-52a1 home]#

四、扩展

在实际使用中,你可能查看访问更多的信息,你可稍微做些修改,就可以适合您的应用了。比如,也可以查看网卡的mac地址,你可以用如下命令即可:

ifconfig eth0 | head -4 | tail -1 | awk '{print $2}'

相关推荐
知北游天10 分钟前
Linux网络:初识网络
linux·运维·网络
染指111010 分钟前
13.渗透-.Linux基础命令(五)-用户管理(修改用户密码)
linux·运维·服务器·linux命令
wheeldown33 分钟前
【Linux】面试常考!Linux 进程核心考点:写时拷贝优化原理 + 进程等待实战,一篇理清进程一生
linux·运维·服务器·面试·php
歪比巴卜__1 小时前
【系列文章】Linux中的并发与竞争[02]-原子操作
linux
LaoZhangGong1231 小时前
了解RJ45插座和水晶头网线
网络·tcp/ip·智能路由器·rj45
云飞云共享云桌面5 小时前
昆山精密机械公司8个Solidworks共用一台服务器
运维·服务器·网络·3d·自动化·制造
MyCollege19995 小时前
win10使用ssh访问vmware虚拟机
linux·运维·centos
许怀楠7 小时前
【主页介绍】
linux·c++·贪心算法·visual studio
大聪明-PLUS8 小时前
GCC 对 C 语言的扩展
linux·嵌入式·arm·smarc
葵野寺8 小时前
【RelayMQ】基于 Java 实现轻量级消息队列(七)
java·开发语言·网络·rabbitmq·java-rabbitmq