📖 Linux Shell 腳本與自動化

分類:進階操作 | 作者:pake | 發布時間:2024-08-07 08:12

Linux Shell 腳本與自動化

在 Linux 系統管理中,Shell 腳本(Shell Script)是提高效率、自動化操作和批次處理的重要工具。本篇將介紹 Shell 腳本的基本概念、進階技巧,以及在 Fedora 系統上的應用,並提供實際案例。


目錄


Shell 腳本基礎

建立與執行 Shell 腳本

在 Fedora(或其他 Linux 發行版)中,Shell 腳本通常使用 bash(Bourne Again Shell)。腳本通常以 .sh 為副檔名。

建立第一個 Shell 腳本

  1. 創建腳本檔案:

    nano hello.sh
  2. 輸入以下內容:

    #!/bin/bash
    echo "Hello, Fedora!"
  3. 設定執行權限:

    chmod +x hello.sh
  4. 執行腳本:

    ./hello.sh

變數與運算

變數定義

name="Fedora User"
echo "Hello, $name"

使用者輸入

echo "請輸入您的名字:"
read user_name
echo "歡迎, $user_name!"

數值運算

num1=10
num2=5
sum=$((num1 + num2))
echo "總和: $sum"

條件判斷與迴圈

if 條件判斷

echo "請輸入一個數字:"
read number

if [ $number -gt 10 ]; then
    echo "數字大於 10"
else
    echo "數字小於或等於 10"
fi

for 迴圈

for i in {1..5}; do
    echo "第 $i 次執行"
done

while 迴圈

count=1
while [ $count -le 5 ]; do
    echo "迴圈次數: $count"
    count=$((count + 1))
done

函數與腳本調用

定義與調用函數

function say_hello() {
    echo "Hello, Fedora!"
}

say_hello

參數傳遞

function greet() {
    echo "你好, $1!"
}

greet "Fedora 使用者"

自動化案例 - Fedora 上的應用

1. Fedora 系統更新腳本

#!/bin/bash
echo "正在更新 Fedora 系統..."
sudo dnf update -y
echo "更新完成!"

執行:

./update_fedora.sh

2. Fedora 自動備份腳本

#!/bin/bash
backup_dir="/backup"
mkdir -p $backup_dir

echo "開始備份 /home 目錄到 $backup_dir"
tar -czvf $backup_dir/home_backup.tar.gz /home

echo "備份完成!"

執行:

./backup.sh

3. Fedora 監控 CPU 使用率

#!/bin/bash
echo "監控 CPU 使用率..."
top -b -n1 | grep "Cpu(s)"

執行:

./monitor_cpu.sh

排程與自動執行

cron 排程(Fedora 常用)

編輯 cron 來自動執行腳本:

crontab -e

新增以下行:

0 3 * * * /home/user/backup.sh

這將每天凌晨 3 點自動執行 backup.sh

systemd 自動啟動服務

在 Fedora 上,systemd 取代了 rc.local,我們可以建立 systemd 服務來自動執行腳本。

  1. 創建服務檔案:

    sudo nano /etc/systemd/system/myscript.service
  2. 添加以下內容:

    [Unit]
    Description=自動執行 Shell 腳本
    
    [Service]
    ExecStart=/home/user/myscript.sh
    
    [Install]
    WantedBy=multi-user.target
  3. 啟用並啟動服務:

    sudo systemctl enable myscript.service
    sudo systemctl start myscript.service

結語

本篇介紹了 Linux Shell 腳本與自動化的基本知識,特別針對 Fedora 系統進行實作。透過這些技巧,您可以自動化各種系統維護、備份、監控等任務,提升工作效率。

⬅ 上一篇 下一篇 ➡
🔙 返回 進階操作 📚 返回教學列表 🏠 返回首頁