mirror of
https://github.com/LCTT/TranslateProject.git
synced 2024-12-26 21:30:55 +08:00
选题: 20191121 Bash Script to View System Information on Linux Every Time You Log into Shell
sources/tech/20191121 Bash Script to View System Information on Linux Every Time You Log into Shell.md
This commit is contained in:
parent
6556e34535
commit
d4e4994b88
@ -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/
|
Loading…
Reference in New Issue
Block a user