您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)如何使用Shell腳本自動化Linux系統(tǒng)維護(hù)任務(wù),文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
系統(tǒng)管理員通常會使用sehll腳本解決工作中重復(fù)的工作,shell腳本使系統(tǒng)管理員花費少的時間去做重復(fù)的工作。
什么是 shell 腳本?
簡單的說,shell 腳本就是一個由 shell 一步一步執(zhí)行的程序,而 shell 是在 Linux 內(nèi)核和最終用戶之間提供接口的另一個程序。
默認(rèn)情況下,RHEL 7 中用戶使用的 shell 是 bash(/bin/bash)。
寫一個腳本顯示系統(tǒng)信息
首先讓我們新建一個目錄用于保存我們的 shell 腳本:
# mkdir scripts # cd scripts
新建一個文本文件system_info.sh,在頭部插入一些注釋以及一些命令:
#!/bin/bash # 該腳本會返回以下這些系統(tǒng)信息: # -主機(jī)名稱: echo -e "\e[31;43m***** HOSTNAME INFORMATION *****\e[0m" hostnamectl echo "" # -文件系統(tǒng)磁盤空間使用: echo -e "\e[31;43m***** FILE SYSTEM DISK SPACE USAGE *****\e[0m" df -h echo "" # -系統(tǒng)空閑和使用中的內(nèi)存: echo -e "\e[31;43m ***** FREE AND USED MEMORY *****\e[0m" free echo "" # -系統(tǒng)啟動時間: echo -e "\e[31;43m***** SYSTEM UPTIME AND LOAD *****\e[0m" uptime echo "" # -登錄的用戶: echo -e "\e[31;43m***** CURRENTLY LOGGED-IN USERS *****\e[0m" who echo "" # -使用內(nèi)存最多的 5 個進(jìn)程 echo -e "\e[31;43m***** TOP 5 MEMORY-CONSUMING PROCESSES *****\e[0m" ps -eo %mem,%cpu,comm --sort=-%mem | head -n 6 echo "" echo -e "\e[1;32mDone.\e[0m"
然后,給腳本可執(zhí)行權(quán)限,并運行腳本:
# chmod +x system_info.sh ./system_info.sh
為了更好的可視化效果各部分標(biāo)題都用顏色顯示:
顏色功能是由以下命令提供的:
echo -e "\e[COLOR1;COLOR2m\e[0m"
其中 COLOR1 和 COLOR2 是前景色和背景色,是你想用顏色顯示的字符串。
使任務(wù)自動化
你想使其自動化的任務(wù)可能因情況而不同。因此,我們不可能在一篇文章中覆蓋所有可能的場景,但是我們會介紹使用 shell 腳本可以使其自動化的三種典型任務(wù):
1) 更新本地文件數(shù)據(jù)庫
1) 查找(或者刪除)有 777 權(quán)限的文件
2) 文件系統(tǒng)使用超過定義的閥值時發(fā)出警告。
讓我們在腳本目錄中新建一個名為 auto_tasks.sh 的文件并添加以下內(nèi)容:
#!/bin/bash # 自動化任務(wù)示例腳本: # -更新本地文件數(shù)據(jù)庫: echo -e "\e[4;32mUPDATING LOCAL FILE DATABASE\e[0m" updatedb if [ $? == 0 ]; then echo "The local file database was updated correctly." else echo "The local file database was not updated correctly." fi echo "" # -查找 和/或 刪除有 777 權(quán)限的文件。 echo -e "\e[4;32mLOOKING FOR FILES WITH 777 PERMISSIONS\e[0m" # Enable either option (comment out the other line), but not both. # Option 1: Delete files without prompting for confirmation. Assumes GNU version of find. #find -type f -perm 0777 -delete # Option 2: Ask for confirmation before deleting files. More portable across systems. find -type f -perm 0777 -exec rm -i {} +; echo "" # -文件系統(tǒng)使用率超過定義的閥值時發(fā)出警告 echo -e "\e[4;32mCHECKING FILE SYSTEM USAGE\e[0m" THRESHOLD=30 while read line; do # This variable stores the file system path as a string FILESYSTEM=$(echo $line | awk '{print $1}') # This variable stores the use percentage (XX%) PERCENTAGE=$(echo $line | awk '{print $5}') # Use percentage without the % sign. USAGE=${PERCENTAGE%?} if [ $USAGE -gt $THRESHOLD ]; then echo "The remaining available space in $FILESYSTEM is critically low. Used: $PERCENTAGE" fi done
" >> $WEB_DIR/report.html # Read the output of df -h line by line while read line; do echo "" >> $WEB_DIR/report.html done " >> $WEB_DIR/report.html
在我們的 RHEL 7 服務(wù)器(192.168.0.18)中,看起來像下面這樣:
你可以添加任何你想要的信息到那個報告中。添加下面的 crontab 條目在每天下午的 1:30 運行該腳本:
30 13 * * * /root/scripts/filesystem_usage.sh
關(guān)于如何使用Shell腳本自動化Linux系統(tǒng)維護(hù)任務(wù)就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。