Linux自动重启系统脚本测试工具

前言

脚本允许用户指定重启的次数和重启间隔时间,并自动生成相应的定时任务。通过使用这个脚本,系统管理员可以轻松地设置重启测试。每次重启操作都会被记录下来,以便用户随时了解测试情况。

一、脚本

bash 复制代码
#!/bin/bash

if [ "$1" = "exit" ]; then
    # 如果传入参数为 "exit",则删除定时任务并退出脚本
    sudo sed -i '/.\/rts.sh/d' /etc/crontab
	echo -e "\e[1;32m[关闭自动重启脚本]\e[0m"
    exit 0
else
    # 获取用户输入的重启次数和重启间隔时间
    read -p "请输入自动重启的次数: " timesLeft
    read -p "请输入重启间隔的时间(分钟): " interval

    # 日志文件保存在当前脚本所在位置
    logFile=$(pwd)/reboot.log

    # 创建并写入重启次数到文件
    echo "timesLeft=$timesLeft" | sudo tee /opt/times.left >/dev/null

    # 创建脚本文件并写入内容
    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
    sed -i '/.\/rts.sh/d' /etc/crontab
    rm -f /opt/rts.sh
    rm -f /opt/times.left
    chown \$USER:\$USER ${logFile}
fi
EOF

    # 设置脚本文件权限
    sudo chmod +x /opt/rts.sh

    # 如存在者删除,并添加新的定时任务
	sudo sed -i '/.\/rts.sh/d' /etc/crontab
    cronjob="*/$interval * * * * root /bin/bash /opt/rts.sh"
    sudo echo "$cronjob" | sudo tee -a /etc/crontab >/dev/null

    echo -e "\e[1;32m[自动重启脚本配置完成]\e[0m"
    echo -n "请稍候,系统即将重启中......"
    read
fi
相关推荐
小Tomkk38 分钟前
数据库 变更和版本控制管理工具 --Bytebase 安装部署(linux 安装篇)
linux·运维·数据库·ci/cd·bytebase
赌博羊39 分钟前
ImportError: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32‘ not found
linux·运维·gnu
木卫二号Coding41 分钟前
第七十九篇-E5-2680V4+V100-32G+llama-cpp编译运行+Qwen3-Next-80B
linux·llama
getapi1 小时前
Ubuntu 22.04 服务器的系统架构是否为 amd64 x86_64
linux·服务器·ubuntu
消失的旧时光-19431 小时前
Linux 入门核心命令清单(工程版)
linux·运维·服务器
艾莉丝努力练剑1 小时前
【Linux:文件】Ext系列文件系统(初阶)
大数据·linux·运维·服务器·c++·人工智能·算法
Trouvaille ~2 小时前
【Linux】TCP Socket编程实战(一):API详解与单连接Echo Server
linux·运维·服务器·网络·c++·tcp/ip·socket
旖旎夜光2 小时前
Linux(13)(中)
linux·网络
威迪斯特3 小时前
CentOS图形化操作界面:理论解析与实践指南
linux·运维·centos·组件·图形化·桌面·xserver
一方热衷.3 小时前
在线安装对应版本NVIDIA驱动
linux·运维·服务器