linux之shell脚本(手把手教你在Linux下使用shell脚本登陆时显示监控信息)
手把手教你在linux下使用shell脚本登陆时显示监控信息 (23),我来为大家讲解一下关于linux之shell脚本?跟着小编一起来看一看吧!
linux之shell脚本
手把手教你在linux下使用shell脚本登陆时显示监控信息 (23)
大家好,不知道昨天周一忙到几点才睡的呢?辛苦了各位,今天继续和大家说一下轻松的吧。大家开始学linux的时候,掌握linux里的基本命令到200作用的话,基本就相当于一个linux系统运维了,听到这么说,是不是感觉劳累都不算什么了呢?
今天和大家说的的登陆的时候,直接就显示一些简单的监控的信息。
因为这个的效果不好截图,那我就开始今天的分享吧。
##----------------------------------------------------------------------------------------------------------##
其实今天的shell脚本很简单,一共也没几行。我把代码复制到下面。然后逐行和大家说一下都是什么意思,怎么个过程。
大家先随便创建一个.sh的文件,我的是在/root下创建的一个123.sh的文件,然后通过chmod x /root/123.sh给123.sh可执行权限。
下面是我写入123.sh的内容。
#!/bin/bash
PN=$(ps aux --no-headers | wc -l)
UN=$(who | wc -l)
RU=$(df -hT | awk -F"[ %] " '/\/$/{print $(NF-1)}')
clear
echo "Login name: $USER"
echo "Running Processes: $PN"
echo "Login Users: $UN"
echo "Usage of / Filesystem: $RU"
代码就是这些。。。。是不是觉得很少呢。。。哈哈。因为我大概看了下,大家周一到周五,都是很累的,我也就不给大家弄很长的代码了,大家也不一定有时间自己敲嘛。。。我也很累,自己也偷个小懒。。。嘿嘿
从第二行开始说。ps aux --no-headers 这里的前面大家应该很了解,ps aux 是查看当前运行情况下,列表所有进程的。后面的—no-headers 则是不显示头部信息,也就是正常显示的每一列都是什么的信息。。。
其实就是下面的这些信息。
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
后面跟的wc –l 就是看有多少行,因为每一行都是一个进程,所以看有多少行,就是有多少个启动的进程了。。。
这样的话,第二句的意思就是,查看当前系统系统有多少启动的进程。
然后说第三行,who 是查看当前系统有哪个用户登陆,后面的wc –l是一样的。
这句话的意思是,查看当前系统有几个账号登陆。
第四句的意思,前面的df –hT, 是查看当前系统每个磁盘的使用情况的。后面的awk -F"[ %] " '/\/$/{print $(NF-1)}' ,拆开了分析。
我先把df –hT 显示的结果给大家看下,大家就更好理解了。
[root@server ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg_server-lv_root ext4 18G 11G 5.5G 67% /
tmpfs tmpfs 491M 0 491M 0% /dev/shm
/dev/sda1 ext4 485M 33M 427M 8% /boot
/dev/sr0 iso9660 4.2G 4.2G 0 100% /media/cdrom
/\/$/ 是第二行,查出来的是下面的。
/dev/mapper/vg_server-lv_root ext4 18G 11G 5.5G 67% /
{print $(NF-1)}是打印倒数第二组数
67%
-F"[ %] " 这里注意一下,%前面是有一个空格的,是以%分段,显示%前面空格内的东西。
/dev/mapper/vg_server-lv_root ext4 18G 11G 5.5G 67% /
那第四句的意思,连起来,就是,查看当前系统磁盘使用的百分比。
下面的就好理解了,clear,是清屏的命令,相当于CTRL L清屏。
第六句,是输出当前登陆用户。
第七八九就是输出前面的英文,加后面用$引用上面第二三四行的输出结果了。。。。
写到这里,前面的脚本基本就写完了,然而我们要打算在登陆的时候,需要显示这3行输出结果,就需要在/root/.bash_profile内,把咱们刚写的123.sh脚本写进去。
在这里和大家说一下,其实/root/这个目录,就是root账号对应的家目录。家目录下都有4个默认的隐藏文件,就是下面这几个文件。
.bash_history 这个文件是记录用户历史命令的文件
.bash_logout这个文件是当每次退出系统(退出bash shell)时,执行该文件.
.bash_profile 这个文件是记录每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.
.bashrc 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取.
大家可以用下面的命令,把我们写的文件直接写入.bash_profile文件内
echo “/root/123.sh” >> /root/.bash_profile
这里需要注意一下,我的123.sh文件是在/root下创建的。所以我的路径是/root/123.sh。大家可以把自己的路径写入。同理,因为我是用root登陆的,所以后面是追加写入到/root/.bash_profile文件内。大家可以把root换成你们登陆的用户名。
这里再给大家介绍一个命令。
sh –x *.sh
这个命令是检测脚本文件语法的命令,如果有写错的行,用这个命令测试,会报出来哪行错了,怎么错的。这样就方便大家一会写很多行代码的时候,分不清楚哪里有什么问题的。
##----------------------------------------------------------------------------------------------------------##
好了,今天的分享就到这里吧,大家如果敲完之后,可以重新登陆一下,看看有什么不一样的没有。。
好了,大家明天见。
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com