实验楼学习笔记。
任务
实现 shell 脚本监控系统的各项参数,并可以将脚本加入系统环境中,可以直接在终端里执行。还添加了几个参数,一个脚本可以执行不同的操作。
涉及知识点
-
Bash 脚本编程
-
如何获取 Linux 系统信息
-
如何实时获取 Linux 资源使用率
准备环节
-
vim编辑器
-
shell解释器(linux自带)
要实现的功能需求
-
通过脚本查看系统的使用情况,实现对linux的系统监控。
-
将写好的脚本加入系统环境,开启终端即可使用
-
给脚本添加参数,可以实现不同的操作。
1、主要命令
☆ 查看内存 ------- free
☆ 查看磁盘 ------ df
☆ 查看内核版本 ------ uname
☆ 查看CPU占有率 ------- top
联系: 根据这些命令的返回值做处理,然后打印在终端。
1.1shell编程注意
’ ‘ 用法 这个符号可以保存命令的返回值。
'''
PATH=’pwd‘ # 也可以写成 PATH =$(pwd)
echo $PATH # 输出pwd命令的值,即当前路径
'''
-
参数说明
$1 表示第一个参数,$2表示第二个参数, $#表示参数个数
开始实验
☆ point:
☆getopts 可以获取用户在命令下的参数,然后根据不同的参数进行不同的操作。
如:
getopts option_string variable
(option_string 是指字符串,会逐个匹配,variable 每次匹配成功的选项)
+ 1 脚本例子
'''
#! /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 三个参数,分别执行安装脚本,查看版本,帮助说明。当然也可以添加自己想要的参数。如果不添加,默认执行系统的监控命令并打印到屏幕上。
+2 脚本添加环境目录
'''
if [[ ! -z $iopt ]] #如果iopt非空就执行
then
{
wd =$(pwd)
basename "$(test -L "$0" && readlink "$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
'''
上面这个代码是对参数i 的模块的实现
接下来是对参数v的模块:
这个部分是查看脚本的版本、版权的信息。
if [[ ! -z $vopt ]]
then
{
echo -e "tecmint_monitor version 0.1\n Released Under Apache 2.0 License"
}
fi
下面是有关参数h的模块:
(这个部分可以添加帮助信息,方便其他人使用)
if