This shell script is tested under CentOS / RHEL and Fedora Linux. It should also work under other Linux distributions. If you would like to collect and submit information on your network configuration to your sr. Linux / UNIX admin use this script.
#!/bin/bash # A Linux Shell script to collect information on your network configuration. # ------------------------------------------------------------------------- # Copyright (c) 2003 nixCraft project <http://cyberciti.biz/fb/> # This script is licensed under GNU GPL version 2.0 or above # ------------------------------------------------------------------------- # This script is part of nixCraft shell script collection (NSSC) # Visit http://bash.cyberciti.biz/ for more information. # ------------------------------------------------------------------------- # Last updated: Jun-03-2009 # ------------------------------------------------------------------------- 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="you@example.com" chk_root(){ local meid=$(id -u) if [ $meid -ne 0 ]; then echo "You must be root user to run this tool" exit 999 fi } write_header(){ echo "---------------------------------------------------" >> $OUTPUT echo "$@" >> $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 "Network Card Drivers Configuration $DRVCONF" [ -f $DRVCONF ] && grep eth $DRVCONF >> $OUTPUT || echo "Error $DRVCONF file not found." >> $OUTPUT write_header "DNS Client $DNSCLIENT Configuration" [ -f $DNSCLIENT ] && cat $DNSCLIENT >> $OUTPUT || echo "Error $DNSCLIENT file not found." >> $OUTPUT write_header "Network Configuration File" 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 "Network Static Routing Configuration" 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 Firewall Configuration" $IP4FW -L -n >> $OUTPUT write_header "IP6 Firewall Configuration" $IP6FW -L -n >> $OUTPUT write_header "Network Stats" $NETSTAT -s >> $OUTPUT write_header "Network Tweaks via $SYSCTL" [ -f $SYSCTL ] && cat $SYSCTL >> $OUTPUT || echo "Error $SYSCTL not found." >>$OUTPUT echo "The Network Configuration Info Written To $OUTPUT. Please email this file to $SUPPORT_ID." } chk_root dump_info
- RSS feed or Weekly email newsletter
- Share on Twitter • Facebook • 13 comments... add one ↓
Category | List of Unix and Linux commands |
---|---|
File Management | cat |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Network Utilities | dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processes Management | bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time |
Searching | grep • whereis • which |
User Information | groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w |
WireGuard VPN | Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04 |
Thanks for the great scripts… I’m currently trying to up my skills on shell programming and these are extremely useful and very cleanly written. Please keep them coming!
same like dustin..
i love this scrips
I recieved this when running the script,,,,,The Network Configuration Info Written To network.08-12-09.info.txt. Please email this file to
im using Centos 5.3
Hi.
This is a very good script. I modified it, because i needed an output of “dmidecode”. I thought it’s useful…
Georg
good day,vivek.
I am currently developing a project that is similar to ftp by using shell script.In my project,I try to implement one replication technique called Read-One-Write-All (ROWA).Do you have any idea how to develop the sourcecode or if possible,any similar project that I could refer to.
Thank you.
This a great script!!!
I but one more line, to send email
cat “$OUTPUT” | mail $SUPPORT_ID -s “The Network Configuration Info $(hostname)”
what a script man…..lovely….hats off to the writer….
Most excellent site! More FreeBSD stuff please :))
agree! this website shared a lot of great infos :)
Awesome script dude… Thanks a ton. This one’s so useful.
Hi, Vivek.
Just wanted to say i like reading your articles and other info on this site.
You and Dag Weeirs are the super gurus of RHEL/CentOS that i know about :)))
B.R
Susinthiran
Oslo/Norway
Thanks for kind words :D