linux之shell腳本?手把手教你在linux下使用shell腳本登陸時顯示監控信息 (23),我來為大家講解一下關于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
這個命令是檢測腳本文件語法的命令,如果有寫錯的行,用這個命令測試,會報出來哪行錯了,怎麼錯的。這樣就方便大家一會寫很多行代碼的時候,分不清楚哪裡有什麼問題的。
##----------------------------------------------------------------------------------------------------------##
好了,今天的分享就到這裡吧,大家如果敲完之後,可以重新登陸一下,看看有什麼不一樣的沒有。。
好了,大家明天見。
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!