劉啓成_shell腳本應用實戰

Shell腳本應用實戰

實驗環境:

隨着業務的不斷髮展,某公司所使用的linux服務器也越來越多,在系統管理和維護過程中,經常需要編寫一些實用的小腳本,以輔助運維工作,提高工作效率。

拓撲:

需求描述:

? 編寫一個名爲getarp.sh的小腳本,記錄局域網中各主機的MAC地址
1)保存到/etc/ether文件中,若此文件已存在,應先轉移進行備份
2)每行一條記錄,第一列爲IP地址,第二列爲對應的MAC地址

? 編寫一個名爲scanhost.sh的掃描腳本,檢查有哪些主機開啓了匿名FTP服務,掃描對象爲/etc/ether文件中的所有IP地址,掃描的端口爲21

實驗步驟

1. 編寫getarp.sh腳本文件

1)通過arping命令發送ARP請求,根據反饋結果記錄MAC地址

2)將網段地址(如192.168.4.)賦值給變量NADD,作爲檢測地址的前綴

3)使用while循環語句,重複檢測目標並記錄MAC地址,主機地址爲1-254

clip_image002

clip_image004

clip_image006

2. 編寫scanhost.sh腳本

1)有很多方法可以檢測一個主機是否開啓FTP服務,這裏採取wget下載工具訪問FTP根目錄的方式,若能夠成功列表,則視爲匿名FTP已開啓,否則視爲關閉

2)通過awk命令過濾出/etc/ethers文件中的所有IP地址,賦值給變量TARGET

3)使用for循環語句,讀取TARGET變量中的IP地址,重複探測FTP的開啓情況

clip_image008

clip_image010

總結:

1. for語句可根據已知的列表對象重複執行命令序列,更適合無規律的循環操作

2. while語句可根據特定的條件重複執行命令序列,更適合有規律的循環操作

3. case語句可根據變量的不同取值執行不同的命令序列,比多分支的if語句結構更加清晰

4. linux系統中的各種系統服務器腳本都使用case分支結構,以便通過start、stop、restart等位置參數進行控制

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章