溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用Shell腳本自動化Linux系統維護任務

發布時間:2022-01-24 11:59:17 來源:億速云 閱讀:293 作者:柒染 欄目:開發技術

這篇文章將為大家詳細講解有關如何使用Shell腳本自動化Linux系統維護任務,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

系統管理員通常會使用sehll腳本解決工作中重復的工作,shell腳本使系統管理員花費少的時間去做重復的工作。

什么是 shell 腳本?

簡單的說,shell 腳本就是一個由 shell 一步一步執行的程序,而 shell 是在 Linux 內核和最終用戶之間提供接口的另一個程序。
默認情況下,RHEL 7 中用戶使用的 shell 是 bash(/bin/bash)。

寫一個腳本顯示系統信息

首先讓我們新建一個目錄用于保存我們的 shell 腳本:

# mkdir scripts
# cd scripts

新建一個文本文件system_info.sh,在頭部插入一些注釋以及一些命令:

#!/bin/bash
# 該腳本會返回以下這些系統信息:
# -主機名稱:
echo -e "\e[31;43m***** HOSTNAME INFORMATION *****\e[0m"
hostnamectl
echo ""
# -文件系統磁盤空間使用:
echo -e "\e[31;43m***** FILE SYSTEM DISK SPACE USAGE *****\e[0m"
df -h
echo ""
# -系統空閑和使用中的內存:
echo -e "\e[31;43m ***** FREE AND USED MEMORY *****\e[0m"
free
echo ""
# -系統啟動時間:
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 ""
# -使用內存最多的 5 個進程
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"

然后,給腳本可執行權限,并運行腳本:

# chmod +x system_info.sh
./system_info.sh

為了更好的可視化效果各部分標題都用顏色顯示:
如何使用Shell腳本自動化Linux系統維護任務
顏色功能是由以下命令提供的:

echo -e "\e[COLOR1;COLOR2m\e[0m"

其中 COLOR1 和 COLOR2 是前景色和背景色,是你想用顏色顯示的字符串。

使任務自動化

你想使其自動化的任務可能因情況而不同。因此,我們不可能在一篇文章中覆蓋所有可能的場景,但是我們會介紹使用 shell 腳本可以使其自動化的三種典型任務:
1) 更新本地文件數據庫
1) 查找(或者刪除)有 777 權限的文件
2) 文件系統使用超過定義的閥值時發出警告。
讓我們在腳本目錄中新建一個名為 auto_tasks.sh 的文件并添加以下內容:

#!/bin/bash
# 自動化任務示例腳本:
# -更新本地文件數據庫:
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 權限的文件。
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 ""
# -文件系統使用率超過定義的閥值時發出警告 
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 服務器(192.168.0.18)中,看起來像下面這樣:
如何使用Shell腳本自動化Linux系統維護任務
你可以添加任何你想要的信息到那個報告中。添加下面的 crontab 條目在每天下午的 1:30 運行該腳本:

30 13 * * * /root/scripts/filesystem_usage.sh

關于如何使用Shell腳本自動化Linux系統維護任務就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女