From d4e4994b885fb2a69f7dc749d12a19fbcb1e17df Mon Sep 17 00:00:00 2001 From: DarkSun Date: Thu, 21 Nov 2019 00:50:45 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=89=E9=A2=98:=2020191121=20Bash=20Script?= =?UTF-8?q?=20to=20View=20System=20Information=20on=20Linux=20Every=20Time?= =?UTF-8?q?=20You=20Log=20into=20Shell?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20191121 Bash Script to View System Information on Linux Every Time You Log into Shell.md --- ... on Linux Every Time You Log into Shell.md | 218 ++++++++++++++++++ 1 file changed, 218 insertions(+) create mode 100644 sources/tech/20191121 Bash Script to View System Information on Linux Every Time You Log into Shell.md diff --git a/sources/tech/20191121 Bash Script to View System Information on Linux Every Time You Log into Shell.md b/sources/tech/20191121 Bash Script to View System Information on Linux Every Time You Log into Shell.md new file mode 100644 index 0000000000..9efdc87ec1 --- /dev/null +++ b/sources/tech/20191121 Bash Script to View System Information on Linux Every Time You Log into Shell.md @@ -0,0 +1,218 @@ +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (Bash Script to View System Information on Linux Every Time You Log into Shell) +[#]: via: (https://www.2daygeek.com/bash-shell-script-view-linux-system-information/) +[#]: author: (Magesh Maruthamuthu https://www.2daygeek.com/author/magesh/) + +Bash Script to View System Information on Linux Every Time You Log into Shell +====== + +There are several commands in Linux to obtain system information such as processor information, manufacturer name, and serial number, etc,. + +You may need to run several commands to collect this information. + +Also, it is very difficult to remember all the commands and their options. + +Instead you can write a **[shell script][1]** to customize the output based on your needs. + +In the past we have written many **[bash scripts][2]** for a variety of purposes. + +Today, we came up with a new shell script, which shows you the required system information every time you log into the shell. + +There are six parts to this script, and more details below. + + * **Part-1:** General System Information + * **Part-2:** CPU/Memory Current Usage + * **Part-3:** Disk Usage >80% + * **Part-4:** List System WWN Details + * **Part-5:** Oracle DB Instances + * **Part-6:** Available Package Updates + + + +We’ve added potential information to each area based on our needs. You can further customize this script to your needs if you wish. + +There are many tools for this, most of which we have already covered. + +To read them, go to the following articles. + + * **[inxi – A Great Tool to Check Hardware Information on Linux][3]** + * **[Dmidecode – Easy Way To Get Linux System Hardware Information][3]** + * **[LSHW (Hardware Lister) – A Nifty Tool To Get A Hardware Information On Linux][3]** + * **[hwinfo (Hardware Info) – A Nifty Tool To Detect System Hardware Information On Linux][3]** + * **[python-hwinfo : Display Summary Of Hardware Information Using Standard Linux Utilities][3]** + * **[How To Use lspci, lsscsi, lsusb, And lsblk To Get Linux System Devices Information][3]** + * **[How To Check System Hardware Manufacturer, Model And Serial Number In Linux][3]** + * **[How To Find WWN, WWNN and WWPN Number Of HBA Card In Linux][3]** + * **[How to check HP iLO Firmware version from Linux command line][3]** + * **[How to check Wireless network card and WiFi information from Linux Command Line][3]** + * **[How to check CPU & Hard Disk temperature on Linux][3]** + * **[Hegemon – A modular System & Hardware monitoring tool for Linux][3]** + * **[How to Check System Configuration and Hardware Information on Linux][3]** + + + +If anyone wants to add any other information in the script, please let us know your requirements in the comment section so that we can help you. + +### Bash Script to View System Information on Linux Every Time You Log into the Shell + +This basic script will bring the system information to your terminal whenever you log into the shell. + +``` +#vi /opt/scripts/system-info.sh + +#!/bin/bash +echo -e "-------------------------------System Information----------------------------" +echo -e "Hostname:\t\t"`hostname` +echo -e "uptime:\t\t\t"`uptime | awk '{print $3,$4}' | sed 's/,//'` +echo -e "Manufacturer:\t\t"`cat /sys/class/dmi/id/chassis_vendor` +echo -e "Product Name:\t\t"`cat /sys/class/dmi/id/product_name` +echo -e "Version:\t\t"`cat /sys/class/dmi/id/product_version` +echo -e "Serial Number:\t\t"`cat /sys/class/dmi/id/product_serial` +echo -e "Machine Type:\t\t"`vserver=$(lscpu | grep Hypervisor | wc -l); if [ $vserver -gt 0 ]; then echo "VM"; else echo "Physical"; fi` +echo -e "Operating System:\t"`hostnamectl | grep "Operating System" | cut -d ' ' -f5-` +echo -e "Kernel:\t\t\t"`uname -r` +echo -e "Architecture:\t\t"`arch` +echo -e "Processor Name:\t\t"`awk -F':' '/^model name/ {print $2}' /proc/cpuinfo | uniq | sed -e 's/^[ \t]*//'` +echo -e "Active User:\t\t"`w | cut -d ' ' -f1 | grep -v USER | xargs -n1` +echo -e "System Main IP:\t\t"`hostname -I` +echo "" +echo -e "-------------------------------CPU/Memory Usage------------------------------" +echo -e "Memory Usage:\t"`free | awk '/Mem/{printf("%.2f%"), $3/$2*100}'` +echo -e "Swap Usage:\t"`free | awk '/Swap/{printf("%.2f%"), $3/$2*100}'` +echo -e "CPU Usage:\t"`cat /proc/stat | awk '/cpu/{printf("%.2f%\n"), ($2+$4)*100/($2+$4+$5)}' | awk '{print $0}' | head -1` +echo "" +echo -e "-------------------------------Disk Usage >80%-------------------------------" +df -Ph | sed s/%//g | awk '{ if($5 > 80) print $0;}' +echo "" + +echo -e "-------------------------------For WWN Details-------------------------------" +vserver=$(lscpu | grep vendor | wc -l) +if [ $vserver -gt 0 ] +then +echo "$(hostname) is a VM" +else +systool -c fc_host -v | egrep "(Class Device path | port_name |port_state)" > systool.out +fi +echo "" + +echo -e "-------------------------------Oracle DB Instances---------------------------" +if id oracle >/dev/null 2>&1; then +/bin/ps -ef|grep pmon +then +else +echo "oracle user does not exist on $(hostname)" +fi +echo "" + +if (( $(cat /etc/*-release | grep -w "Oracle|Red Hat|CentOS|Fedora" | wc -l) > 0 )) +then +echo -e "-------------------------------Package Updates-------------------------------" +yum updateinfo summary | grep 'Security|Bugfix|Enhancement' +echo -e "-----------------------------------------------------------------------------" +else +echo -e "-------------------------------Package Updates-------------------------------" +cat /var/lib/update-notifier/updates-available +echo -e "-----------------------------------------------------------------------------" +fi +``` + +Once the above script is added to a file. Set the executable permission for the “system-info.sh” file. + +``` +# chmod +x ~root/system-info.sh +``` + +When the script is ready, add the file path at the end of the “.bash_profile” file in RHEL-based systems CentOS, Oracle Linux and Fedora. + +``` +# echo "/root/system-info.sh" >> ~root/.bash_profile +``` + +To take this change effect, run the following command. + +``` +# source ~root/.bash_profile +``` + +For Debian-based systems, you may need to add a file path to the “.profile” file. + +``` +# echo "/root/system-info.sh" >> ~root/.profile +``` + +Run the following command to take this change effect. + +``` +# source ~root/.profile +``` + +You may have seen an output like the one below when running the above “source” command. + +From next time on-wards, you will get this information every time you log into the shell. + +Alternatively, you can manually run this script at any time if you need to. + +``` +-------------------------------System Information--------------------------- +Hostname: daygeek-Y700 +uptime: 1:20 1 +Manufacturer: LENOVO +Product Name: 80NV +Version: Lenovo ideapad Y700-15ISK +Serial Number: AA0CMRN1 +Machine Type: Physical +Operating System: Manjaro Linux +Kernel: 4.19.80-1-MANJARO +Architecture: x86_64 +Processor Name: Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz +Active User: daygeek renu thanu +System Main IP: 192.168.1.6 192.168.122.1 + +-------------------------------CPU/Memory Usage------------------------------ +Memory Usage: 37.28% +Swap Usage: 0.00% +CPU Usage: 15.43% + +-------------------------------Disk Usage >80%------------------------------- +Filesystem Size Used Avail Use Mounted on +/dev/nvme0n1p1 217G 202G 4.6G 98 / +/dev/loop0 109M 109M 0 100 /var/lib/snapd/snap/odrive-unofficial/2 +/dev/loop1 91M 91M 0 100 /var/lib/snapd/snap/core/6405 +/dev/loop2 90M 90M 0 100 /var/lib/snapd/snap/core/7713 + +-------------------------------For WWN Details------------------------------- +CentOS8.2daygeek.com is a VM + +-------------------------------Oracle DB Instances--------------------------- +oracle user does not exist on CentOS8.2daygeek.com + +-------------------------------Package Updates------------------------------- + 13 Security notice(s) + 9 Important Security notice(s) + 3 Moderate Security notice(s) + 1 Low Security notice(s) + 35 Bugfix notice(s) + 1 Enhancement notice(s) +----------------------------------------------------------------------------- +``` + +-------------------------------------------------------------------------------- + +via: https://www.2daygeek.com/bash-shell-script-view-linux-system-information/ + +作者:[Magesh Maruthamuthu][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.2daygeek.com/author/magesh/ +[b]: https://github.com/lujun9972 +[1]: https://www.2daygeek.com/category/shell-script/ +[2]: https://www.2daygeek.com/category/bash-script/ +[3]: https://www.2daygeek.com/inxi-system-hardware-information-on-linux/