欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux設(shè)置自動(dòng)重啟腳本實(shí)現(xiàn)方式

 更新時(shí)間:2025年10月10日 08:50:32   作者:黑蛋同志  
這篇文章主要介紹了Linux設(shè)置自動(dòng)重啟腳本實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一、這個(gè)腳本的目的是自動(dòng)配置一個(gè)重啟計(jì)劃

并在系統(tǒng)啟動(dòng)時(shí)自動(dòng)執(zhí)行重啟操作,直到指定的次數(shù)耗盡。

用戶(hù)可以通過(guò)傳遞特定的參數(shù)來(lái)啟動(dòng)或關(guān)閉自動(dòng)重啟。

vi auto_reboot.sh
#!/bin/bash

# 判斷參數(shù)是否為 "exit",如果是則關(guān)閉自動(dòng)重啟功能
if [ "$1" = "exit" ]; then
    # 刪除定時(shí)任務(wù)并退出腳本
    sudo sed -i '/.\/rts.sh/d' /etc/crontab
    echo -e "\e[1;32m[關(guān)閉自動(dòng)重啟腳本]\e[0m"
    exit 0
else
    # 獲取用戶(hù)輸入的重啟次數(shù)和重啟間隔時(shí)間
    read -p "請(qǐng)輸入自動(dòng)重啟的次數(shù): " timesLeft
    read -p "請(qǐng)輸入重啟間隔的時(shí)間(分鐘): " interval

    # 日志文件保存在當(dāng)前腳本所在位置
    logFile=$(pwd)/reboot.log

    # 創(chuàng)建并寫(xiě)入重啟次數(shù)到文件
    echo "timesLeft=$timesLeft" | sudo tee /opt/times.left >/dev/null

    # 創(chuàng)建腳本文件并寫(xiě)入內(nèi)容
    cat <<EOF | sudo tee /opt/rts.sh >/dev/null
#!/bin/bash

source /opt/times.left

if [ \$timesLeft -gt 0 ]; then
    echo "還剩余\$timesLeft次重啟" >> ${logFile}
    date >> ${logFile}
    echo >> ${logFile}
    echo "timesLeft=\$((timesLeft-1))" > /opt/times.left
    reboot
else
    # 刪除定時(shí)任務(wù)、腳本和文件
    sed -i '/.\/rts.sh/d' /etc/crontab
    rm -f /opt/rts.sh
    rm -f /opt/times.left
    chown \$USER:\$USER ${logFile}
    echo "自動(dòng)重啟次數(shù)已耗盡,不再自動(dòng)重啟。" >> ${logFile}
fi
EOF

    # 設(shè)置腳本文件權(quán)限
    sudo chmod +x /opt/rts.sh

    # 刪除已有的定時(shí)任務(wù),并添加新的定時(shí)任務(wù)
    sudo sed -i '/.\/rts.sh/d' /etc/crontab
    cronjob="*/$interval * * * * root /bin/bash /opt/rts.sh"
    echo "$cronjob" | sudo tee -a /etc/crontab >/dev/null

    echo -e "\e[1;32m[自動(dòng)重啟腳本配置完成]\e[0m"
    echo -n "請(qǐng)稍候,系統(tǒng)即將重啟中……"
    
    # 等待 2 秒后重啟系統(tǒng)
    sleep 2
    sudo reboot
fi

二、腳本功能概述

  • 自動(dòng)重啟功能:允許用戶(hù)指定重啟次數(shù)和重啟間隔時(shí)間。
  • 定時(shí)任務(wù):腳本會(huì)創(chuàng)建一個(gè)定時(shí)任務(wù),根據(jù)用戶(hù)指定的間隔時(shí)間定期執(zhí)行。
  • 日志記錄:每次重啟時(shí)會(huì)記錄到日志文件,記錄重啟次數(shù)和時(shí)間。
  • 重啟次數(shù)耗盡后:當(dāng)重啟次數(shù)耗盡時(shí),刪除定時(shí)任務(wù)和相關(guān)文件,不再繼續(xù)重啟。

詳細(xì)解析:

1.判斷是否關(guān)閉自動(dòng)重啟(exit 參數(shù))

if [ "$1" = "exit" ]; then
    # 刪除定時(shí)任務(wù)并退出腳本
    sudo sed -i '/.\/rts.sh/d' /etc/crontab
    echo -e "\e[1;32m[關(guān)閉自動(dòng)重啟腳本]\e[0m"
    exit 0

如果用戶(hù)傳遞了 exit 作為參數(shù),腳本將刪除 /etc/crontab 中的定時(shí)任務(wù),表示關(guān)閉自動(dòng)重啟功能。

然后打印提示信息 [關(guān)閉自動(dòng)重啟腳本],并退出腳本。

2.獲取用戶(hù)輸入

read -p "請(qǐng)輸入自動(dòng)重啟的次數(shù): " timesLeft
read -p "請(qǐng)輸入重啟間隔的時(shí)間(分鐘): " interval

用戶(hù)將被要求輸入重啟的次數(shù)(timesLeft)和重啟間隔的時(shí)間(interval,單位為分鐘)。

3.創(chuàng)建日志文件和配置文件

logFile=$(pwd)/reboot.log
echo "timesLeft=$timesLeft" | sudo tee /opt/times.left >/dev/null
  • logFile 變量存儲(chǔ)日志文件的路徑,日志文件將記錄重啟的時(shí)間和重啟次數(shù)。
  • timesLeft(重啟次數(shù))被保存到 /opt/times.left 文件中,用于后續(xù)的定時(shí)任務(wù)。

4.創(chuàng)建重啟腳本(rts.sh)

cat <<EOF | sudo tee /opt/rts.sh >/dev/null
#!/bin/bash
source /opt/times.left
if [ \$timesLeft -gt 0 ]; then
    echo "還剩余\$timesLeft次重啟" >> ${logFile}
    date >> ${logFile}
    echo >> ${logFile}
    echo "timesLeft=\$((timesLeft-1))" > /opt/times.left
    reboot
else
    # 刪除定時(shí)任務(wù)、腳本和文件
    sed -i '/.\/rts.sh/d' /etc/crontab
    rm -f /opt/rts.sh
    rm -f /opt/times.left
    chown \$USER:\$USER ${logFile}
    echo "自動(dòng)重啟次數(shù)已耗盡,不再自動(dòng)重啟。" >> ${logFile}
fi
EOF

腳本會(huì)創(chuàng)建一個(gè)新的腳本 /opt/rts.sh,用于執(zhí)行自動(dòng)重啟邏輯。

腳本內(nèi)容:

  • 讀取 /opt/times.left 文件中的剩余重啟次數(shù)。

如果 timesLeft 大于 0,則:

  • 打印剩余次數(shù)并記錄當(dāng)前時(shí)間到日志文件中。
  • 減少 timesLeft,然后執(zhí)行系統(tǒng)重啟。

如果 timesLeft 為 0,則:

  • 刪除 /opt/rts.sh 腳本,刪除重啟次數(shù)文件 /opt/times.left。
  • 刪除 /etc/crontab 中的定時(shí)任務(wù),表示自動(dòng)重啟結(jié)束。

5.設(shè)置腳本權(quán)限

sudo chmod +x /opt/rts.sh

給 rts.sh 腳本文件加上可執(zhí)行權(quán)限。

6.設(shè)置定時(shí)任務(wù)

sudo sed -i '/.\/rts.sh/d' /etc/crontab
cronjob="*/$interval * * * * root /bin/bash /opt/rts.sh"
echo "$cronjob" | sudo tee -a /etc/crontab >/dev/null

刪除 /etc/crontab 中的舊定時(shí)任務(wù)(如果存在)。

添加一個(gè)新的定時(shí)任務(wù),定期執(zhí)行 /opt/rts.sh 腳本,間隔時(shí)間為用戶(hù)輸入的 interval。

7.輸出信息并重啟

echo -e "\e[1;32m[自動(dòng)重啟腳本配置完成]\e[0m"
echo -n "請(qǐng)稍候,系統(tǒng)即將重啟中……"
sleep 2
sudo reboot

配置完成后,腳本打印 [自動(dòng)重啟腳本配置完成] 的提示信息。

然后暫停 2 秒后,執(zhí)行系統(tǒng)重啟。

三、使用示例

1.啟動(dòng)自動(dòng)重啟

執(zhí)行腳本并輸入需要的重啟次數(shù)和間隔時(shí)間。

./auto_reboot.sh

輸入:

  • 自動(dòng)重啟的次數(shù):3
  • 重啟間隔的時(shí)間:5 分鐘

2.關(guān)閉自動(dòng)重啟

如果希望停止自動(dòng)重啟,執(zhí)行:

./auto_reboot.sh exit

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論