linux之shell脚本(手把手教你在Linux下使用shell脚本登陆时显示监控信息)

手把手教你在linux下使用shell脚本登陆时显示监控信息 (23),我来为大家讲解一下关于linux之shell脚本?跟着小编一起来看一看吧!

linux之shell脚本(手把手教你在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

    分享
    投诉
    首页