编写shell
[ root@centos ~]
while getopts ivh name
do
case $name in
i) iopt= 1; ;
v) vopt= 1; ;
h) hopt= 1; ;
*) echo "Invalid arg,input -[i|v|h]" ; ;
esac
done
if [ [ ! -z $iopt ] ]
then
{
wd= $( pwd )
basename "$( test -L "$0 " && readlink "$0 " || echo "$0 " ) " > /tmp/scriptname
scriptname= $( echo -e -n $wd/ && cat /tmp/scriptname)
su -c "cp $scriptname /usr/bin/monitor" root && echo "Congratulations! Script Installed, now run monitor Command" || echo "Installation failed"
}
fi
if [ [ ! -z $vopt ] ]
then
{
echo -e "tecmint_monitor version 0.1\nDesigned by Tecmint.com\nReleased Under Apache 2.0 License"
}
fi
if [ [ ! -z $hopt ] ]
then
{
echo -e " -i Install script"
echo -e " -v Print version information and exit"
echo -e " -h Print help (this information) and exit"
}
fi
if [ [ $
then
{
clear
unset tecreset os architecture kernelrelease internalip externalip nameserver loadaverage
tecreset= $( tput sgr0)
ping -c 1 www.baidu.com & > /dev/null && echo -e '\E[32m' "Internet: $tecreset Connected" || echo -e '\E[32m' "Internet: $tecreset Disconnected"
os= $( uname -o)
echo -e '\E[32m' "Operating System Type :" $tecreset $os
OS= ` uname -s`
REV= ` uname -r`
MACH= ` uname -m`
GetVersionFromFile( )
{
VERSION= ` cat $1 | tr "\n" ' ' | sed s/.*VERSION.*= \ // `
}
if [ "${OS} " = "SunOS" ] ; then
OS= Solaris
ARCH= ` uname -p`
OSSTR= "${OS} ${REV} (${ARCH} ` uname -v` )"
elif [ "${OS} " = "AIX" ] ; then
OSSTR= "${OS} ` oslevel` (` oslevel -r` )"
elif [ "${OS} " = "Linux" ] ; then
KERNEL= ` uname -r`
if [ -f /etc/redhat-release ] ; then
DIST= 'RedHat'
PSUEDONAME= ` cat /etc/redhat-release | sed s/.*\( // | sed s/\) //`
REV= ` cat /etc/redhat-release | sed s/.*release\ // | sed s/\ .*//`
elif [ -f /etc/SuSE-release ] ; then
DIST= ` cat /etc/SuSE-release | tr "\n" ' ' | sed s/VERSION.*//`
REV= ` cat /etc/SuSE-release | tr "\n" ' ' | sed s/.*= \ //`
elif [ -f /etc/mandrake-release ] ; then
DIST= 'Mandrake'
PSUEDONAME= ` cat /etc/mandrake-release | sed s/.*\( // | sed s/\) //`
REV= ` cat /etc/mandrake-release | sed s/.*release\ // | sed s/\ .*//`
elif [ -f /etc/debian_version ] ; then
DIST= "Debian ` cat /etc/debian_version` "
REV= ""
fi
if ${OSSTR} [ -f /etc/UnitedLinux-release ] ; then
DIST= "${DIST} [` cat /etc/UnitedLinux-release | tr "\n" ' ' | sed s/VERSION.*//` ]"
fi
OSSTR= "${OS} ${DIST} ${REV} (${PSUEDONAME} ${KERNEL} ${MACH} )"
fi
echo -e '\E[32m' "OS Version :" $tecreset $OSSTR
architecture= $( uname -m)
echo -e '\E[32m' "Architecture :" $tecreset $architecture
kernelrelease= $( uname -r)
echo -e '\E[32m' "Kernel Release :" $tecreset $kernelrelease
echo -e '\E[32m' "Hostname :" $tecreset $HOSTNAME
internalip= $( hostname -I)
echo -e '\E[32m' "Internal IP :" $tecreset $internalip
externalip= $( curl -s ipecho.net/plain; echo )
echo -e '\E[32m' "External IP : $tecreset " $externalip
nameservers= $( cat /etc/resolv.conf | sed '1 d' | awk '{print $2 }' )
echo -e '\E[32m' "Name Servers :" $tecreset $nameservers
who> /tmp/who
echo -e '\E[32m' "Logged In users :" $tecreset && cat /tmp/who
free -h | grep -v + > /tmp/ramcache
echo -e '\E[32m' "Ram Usages :" $tecreset
cat /tmp/ramcache | grep -v "Swap"
echo -e '\E[32m' "Swap Usages :" $tecreset
cat /tmp/ramcache | grep -v "Mem"
df -h| grep 'Filesystem\|/dev/sda*' > /tmp/diskusage
echo -e '\E[32m' "Disk Usages :" $tecreset
cat /tmp/diskusage
loadaverage= $( top -n 1 -b | grep "load average:" | awk '{print $10 $11 $12 }' )
echo -e '\E[32m' "Load Average :" $tecreset $loadaverage
tecuptime= $( uptime | awk '{print $3 ,$4 }' | cut -f1 -d,)
echo -e '\E[32m' "System Uptime Days/(HH:MM) :" $tecreset $tecuptime
unset tecreset os architecture kernelrelease internalip externalip nameserver loadaverage
rm /tmp/who /tmp/ramcache /tmp/diskusage
}
fi
shift $(( $OPTIND - 1 ))
测试
[ root@centos ~]
Congratulations! Script Installed, now run monitor Command
[ root@centos ~]
[ root@centos ~]
tecmint_monitor version 0.1
Designed by Tecmint.com
Released Under Apache 2.0 License
[ root@centos ~]
[ root@centos ~]
-i Install script
-v Print version information and exit
-h Print help ( this information) and exit
[ root@centos ~]
[ root@centos ~]
Internet: Connected
Operating System Type : GNU/Linux
OS Version : Linux RedHat 7.8.2003( Core 3.10.0-1062.18.1.el7.x86_64 x86_64)
Architecture : x86_64
Kernel Release : 3.10.0-1062.18.1.el7.x86_64
Hostname : centos
Internal IP : 10.206.0.10 172.17.0.1
External IP : 119.45.39.74
Name Servers : 183.60.83.19 183.60.82.98
Logged In users :
root pts/0 2021-01-27 11:14 ( 221.217.94.106)
root pts/1 2021-01-27 13:58 ( 221.217.94.106)
root pts/2 2021-01-27 14:51 ( 221.217.94.106)
Ram Usages :
total used free shared buff/cache available
Mem: 1.8G 456M 69M 832K 1.3G 1.2G
Swap Usages :
total used free shared buff/cache available
Swap: 0B 0B 0B
Disk Usages :
Filesystem Size Used Avail Use% Mounted on
Load Average : loadaverage:0.46,
System Uptime Days/( HH:MM) : 99 days
[ root@centos ~]