一、主要命令介绍
- 查看内存(
free
)
- 查看内存(
free
) - 查看磁盘(
df
) - 查看cpu占用率(
top
) - 查看内核版本(
uname
)
这些命令是linux管理员必须耳熟能详的基本命令,系统监控脚本是根据这些命令的返回值做处理,然后打印在终端的。
Linux命令详解请查看 http://man.linuxde.net/
二、shell编程注意
``
用法 这个符号可以保存命令的返回值,如
PATH=`pwd` #也可以写成 PAHT=$(pwd)
echo $PATH
#输出pwd命令的值,也就是当前路径
- 参数说明
$1
表示第一个参数,$2
表示第二个参数,$#
表示参数个数
如果读者对于这些不熟悉,要先学习高级Bash脚本编程指南,其中shell的基本语法
三、实现系统监控脚本
打开终端,进入Code
目录,创建文件tecmint_monitor.sh
。 getopts
:可以获取用户在命令下的参数,然后根据不同的参数进行不同的操作。它的使用方法是getopts option_string variable,option_string 是指字符串,会逐个匹配,variable 每次匹配成功的选项。
#! /bin/bash
while getopts ivh name # getopts 有三个参数,分别执行安装,查看版本,帮助说明
do
case $name in
i)iopt=1;;
v)vopt=1;;
h)hopt=1;;
*)echo "Invalid arg";;
esac
done
这个脚本主要有 -ivh
三个参数,分别执行安装脚本,查看版本,帮助说明,你也可以添加自己想要的参数。如果不加参数,默认执行系统的监控命令并打印到屏幕上。
这个部分主要是将脚本添加到环境的目录里,通过终端就可以执行命令。
if [[ ! -z $iopt ]] #如果iopt非空则执行
then
{
wd=$(pwd)
basename "$(test -L "$0" && readlink "$0" || echo "$0")" > /tmp/scriptname
#basename命令会删掉所有的前缀包括最后一个slash(‘/’)字符,然后将字符串显示出来
scriptname=$(echo -e -n $wd/ && cat /tmp/scriptname)
#scriptname就是tecmint_monitor.sh的地址
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\nReleased Under Apache 2.0 License"
}
fi
这个部分是添加帮助信息,方便其他人使用
if [[ ! -z $hopt ]]
then
{
echo -e " -i