Linux Shell 腳本與自動化
在 Linux 系統管理中,Shell 腳本(Shell Script)是提高效率、自動化操作和批次處理的重要工具。本篇將介紹 Shell 腳本的基本概念、進階技巧,以及在 Fedora 系統上的應用,並提供實際案例。
目錄
Shell 腳本基礎
建立與執行 Shell 腳本
在 Fedora(或其他 Linux 發行版)中,Shell 腳本通常使用 bash
(Bourne Again Shell)。腳本通常以 .sh
為副檔名。
建立第一個 Shell 腳本
-
創建腳本檔案:
nano hello.sh
-
輸入以下內容:
#!/bin/bash echo "Hello, Fedora!"
-
設定執行權限:
chmod +x hello.sh
-
執行腳本:
./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
服務來自動執行腳本。
-
創建服務檔案:
sudo nano /etc/systemd/system/myscript.service
-
添加以下內容:
[Unit] Description=自動執行 Shell 腳本 [Service] ExecStart=/home/user/myscript.sh [Install] WantedBy=multi-user.target
-
啟用並啟動服務:
sudo systemctl enable myscript.service sudo systemctl start myscript.service
結語
本篇介紹了 Linux Shell 腳本與自動化的基本知識,特別針對 Fedora 系統進行實作。透過這些技巧,您可以自動化各種系統維護、備份、監控等任務,提升工作效率。