manage_swappiness.sh
· 1.9 KiB · Bash
Originalformat
#!/bin/bash
# manage_swappiness.sh
# 簡單又好用的 Linux swappiness 管理小工具
# 檢查是否有 root 權限
if [ "$EUID" -ne 0 ]; then
echo "嘿,這個腳本需要 root 權限喔!試試用 sudo 來執行吧。"
exit 1
fi
# 顯示當前的 swappiness 值
function show_swappiness() {
echo "現在系統的 swappiness 值是: $(cat /proc/sys/vm/swappiness)"
}
# 設置臨時 swappiness 值
function set_temp_swappiness() {
read -p "請輸入臨時 swappiness 值 (0-100): " value
if [[ "$value" =~ ^[0-9]+$ ]] && [ "$value" -ge 0 ] && [ "$value" -le 100 ]; then
sysctl vm.swappiness=$value
echo "好的,臨時 swappiness 值已經設置為 $value 了!(重啟後會還原喔)"
else
echo "額... 這個數字不對吧?請輸入 0 到 100 之間的數字。"
fi
}
# 設置永久 swappiness 值
function set_permanent_swappiness() {
read -p "請輸入永久 swappiness 值 (0-100): " value
if [[ "$value" =~ ^[0-9]+$ ]] && [ "$value" -ge 0 ] && [ "$value" -le 100 ]; then
sed -i '/^vm.swappiness/d' /etc/sysctl.conf
echo "vm.swappiness=$value" >> /etc/sysctl.conf
sysctl -p
echo "OK!永久 swappiness 值已經設置為 $value,系統會保持這個設定。"
else
echo "嗯... 這個數字不太對吧?記得要輸入 0 到 100 之間的數字喔!"
fi
}
# 顯示選單
function show_menu() {
echo ""
echo "===== swappiness 小幫手 ====="
echo "1. 查看當前 swappiness 值"
echo "2. 設置臨時 swappiness 值"
echo "3. 設置永久 swappiness 值"
echo "4. 離開腳本"
echo "============================="
}
# 主程序循環
while true; do
show_menu
read -p "請選擇操作 (1-4): " choice
case $choice in
1) show_swappiness ;;
2) set_temp_swappiness ;;
3) set_permanent_swappiness ;;
4) echo "掰掰!希望這個小工具對你有幫助!"; exit 0 ;;
*) echo "哎呀,請輸入 1 到 4 之間的數字喔!" ;;
esac
done
| 1 | #!/bin/bash |
| 2 | |
| 3 | # manage_swappiness.sh |
| 4 | # 簡單又好用的 Linux swappiness 管理小工具 |
| 5 | |
| 6 | # 檢查是否有 root 權限 |
| 7 | if [ "$EUID" -ne 0 ]; then |
| 8 | echo "嘿,這個腳本需要 root 權限喔!試試用 sudo 來執行吧。" |
| 9 | exit 1 |
| 10 | fi |
| 11 | |
| 12 | # 顯示當前的 swappiness 值 |
| 13 | function show_swappiness() { |
| 14 | echo "現在系統的 swappiness 值是: $(cat /proc/sys/vm/swappiness)" |
| 15 | } |
| 16 | |
| 17 | # 設置臨時 swappiness 值 |
| 18 | function set_temp_swappiness() { |
| 19 | read -p "請輸入臨時 swappiness 值 (0-100): " value |
| 20 | if [[ "$value" =~ ^[0-9]+$ ]] && [ "$value" -ge 0 ] && [ "$value" -le 100 ]; then |
| 21 | sysctl vm.swappiness=$value |
| 22 | echo "好的,臨時 swappiness 值已經設置為 $value 了!(重啟後會還原喔)" |
| 23 | else |
| 24 | echo "額... 這個數字不對吧?請輸入 0 到 100 之間的數字。" |
| 25 | fi |
| 26 | } |
| 27 | |
| 28 | # 設置永久 swappiness 值 |
| 29 | function set_permanent_swappiness() { |
| 30 | read -p "請輸入永久 swappiness 值 (0-100): " value |
| 31 | if [[ "$value" =~ ^[0-9]+$ ]] && [ "$value" -ge 0 ] && [ "$value" -le 100 ]; then |
| 32 | sed -i '/^vm.swappiness/d' /etc/sysctl.conf |
| 33 | echo "vm.swappiness=$value" >> /etc/sysctl.conf |
| 34 | sysctl -p |
| 35 | echo "OK!永久 swappiness 值已經設置為 $value,系統會保持這個設定。" |
| 36 | else |
| 37 | echo "嗯... 這個數字不太對吧?記得要輸入 0 到 100 之間的數字喔!" |
| 38 | fi |
| 39 | } |
| 40 | |
| 41 | # 顯示選單 |
| 42 | function show_menu() { |
| 43 | echo "" |
| 44 | echo "===== swappiness 小幫手 =====" |
| 45 | echo "1. 查看當前 swappiness 值" |
| 46 | echo "2. 設置臨時 swappiness 值" |
| 47 | echo "3. 設置永久 swappiness 值" |
| 48 | echo "4. 離開腳本" |
| 49 | echo "=============================" |
| 50 | } |
| 51 | |
| 52 | # 主程序循環 |
| 53 | while true; do |
| 54 | show_menu |
| 55 | read -p "請選擇操作 (1-4): " choice |
| 56 | case $choice in |
| 57 | 1) show_swappiness ;; |
| 58 | 2) set_temp_swappiness ;; |
| 59 | 3) set_permanent_swappiness ;; |
| 60 | 4) echo "掰掰!希望這個小工具對你有幫助!"; exit 0 ;; |
| 61 | *) echo "哎呀,請輸入 1 到 4 之間的數字喔!" ;; |
| 62 | esac |
| 63 | done |
| 64 |