重启服务器脚本sh

#!/bin/bash#%-6s -m : Check /proc/meminfo MemTotal size\n\#%-6s -man n: Set max reboot number as n,\n\helpinfo(){printf "Usage: ./$PROGRAM [ -max n | -interval n ]\n\%-14s default is the test would continue  until user stop\n\%-6s -interval n: Set wait time after system power on,\n\%-15s default is 5 mins\n\%-15s -V echo current revision \n"}finish(){    helpinfo    exit $1}VERSION_ECHO(){#    VERSION=V1.0#ADD PRINT HELP INFO BY ALAN 20191126    VERSION=V1.1    echo $VERSION    exit 0}start(){#start reboot, if the config file and reboot file exsit, mean is in reboot    if [ -f $CONFIG ] && [ -f $WARMBOOTSH ]     then        . $CONFIG        $WARMBOOTSH        exit $?    fi}stop(){#stop reboot    test -f $CONFIG && . $CONFIG    crontab -r     printf "Test stop at %s\n" "`date`" >>$LOG    rm -rf $CONFIG    exit 0}error(){    echo "$@" 1>&2    finish 1}PROGRAM=`basename $0`#echo "$PROGRAM"#readWAIT_TIME=5WARMBOOT_PATH=`pwd`/$0WARMBOOT_PARENT_FD=${WARMBOOT_PATH%/*}WARMBOOTSH=$WARMBOOT_PARENT_FD/warmboot.sh#echo "$WARMBOOT_PARENT_FD"#readCONFIG=$WARMBOOT_PARENT_FD/warmboot/confCOUNTFILE=$WARMBOOT_PARENT_FD/RebootResult/countLOGFILE=`date +%Y%m%d%H%M%S`LOG=$WARMBOOT_PARENT_FD/RebootResult/$LOGFILE/warmboot.logFAILLOG=$WARMBOOT_PARENT_FD/RebootResult/$LOGFILE/faillog.logREBOOT=/sbin/rebootmkdir -p $WARMBOOT_PARENT_FD/warmbootmkdir -p $WARMBOOT_PARENT_FD/RebootResultmkdir -p $WARMBOOT_PARENT_FD/RebootResult/$LOGFILE#mv /root/warmboot/warmboot.log /opt/RebootResult/$LOGFILE 2>/dev/nullwhile test  $# -gt 0do    case $1 in#     -m | -memory | --m | --memory )#        CHECK_MEM=yes#        OLD_MEMORY_FILE=/opt/old_meminfo#        cat /proc/meminfo | head -1| awk '{print $2}' > $OLD_MEMORY_FILE#        ;;    -max | --max | -MAX | --MAX )        shift        test $1 -ge 0 && MAX_CYCLE=$1        ;;    -interval | --interval )         shift        test $1 -ge 1 && WAIT_TIME=$1        ;;     -V | --version )        VERSION_ECHO        ;;    stop)        stop        ;;    start)        start        ;;    -*)        error "Unrecognized options: $1"        ;;    *)        break        ;;    esac    shiftdoneecho  "RunTime: " 0  " ErrorTime:" 0 > $COUNTFILEprintf "Start system reboot test at %s\n" "`date`">$LOGecho "PROGRAM=`basename $0`" >$CONFIGtest "$CHECK_MEM" = "yes" && echo  "CHECK_MEM=$CHECK_MEM" >> $CONFIGtest ! -z "$OLD_MEMORY_FILE" && echo "OLD_MEMORY_FILE=$OLD_MEMORY_FILE" >>$CONFIGtest ! -z "$MAX_CYCLE" && echo  "MAX_CYCLE=$MAX_CYCLE" >> $CONFIGecho  "WAIT_TIME=$WAIT_TIME" >> $CONFIGecho  "COUNTFILE=$COUNTFILE" >> $CONFIGecho  "WARMBOOT_PARENT_FD=$WARMBOOT_PARENT_FD" >> $CONFIGecho  "WARMBOOT_PATH=$WARMBOOT_PATH" >>$CONFIGecho  "WARMBOOTSH=$WARMBOOTSH" >> $CONFIGecho  "CONFIG=$CONFIG" >> $CONFIGecho  "LOG=$LOG" >> $CONFIGecho  "FAILLOG=$FAILLOG" >> $CONFIGecho  "REBOOT=$REBOOT" >> $CONFIGcat >$WARMBOOTSH<<"EOF"#!/bin/shCUSTOMCONF=/etc/gdm/CONFIG_PATH=$0CONFIG_PATH=${CONFIG_PATH%/*}CONFIG=${CONFIG_PATH}/warmboot/conf#echo "[$1] [$(cat $CONFIG)]" > ~/Desktop/1.txt #exit 1#CONFIG=$WARMBOOT_PARENT_FD/warmboot/conf#load configif [ ! -f  "$CONFIG" ]then    echo -e "\033[31;5m**Error**: Can't find $CONFIG, test abort \033[0m"    exit 1fi. "$CONFIG"count=`cat $COUNTFILE | head -1| awk '{print $2}'`error_n=0error_mem=`cat $COUNTFILE | head -2| awk '{print $4}'`if [ ! -z "$MAX_CYCLE" ] && [ "$MAX_CYCLE" -gt 0 ] && [ "$count" -eq "$MAX_CYCLE" ]then    echo "Test Finish" `date` >> $LOG;    cd $CUSTOMCONF    #sed -i '4,7d' custom.conf    crontab -r    exit 0ficount=$(($count + 1))printf "No. %d %s" "$count" "`date`" >> $LOG#memory size checkingif [ "$CHECK_MEM" = "yes" ]then    old_meminfo=`cat $OLD_MEMORY_FILE`    new_meminfo=`cat /proc/meminfo | head -1| awk '{print $2}'`    if [ "$old_meminfo" = "$new_meminfo" ]    then        printf " Memory check pass" >>$LOG    else        error_n=$(($error_n+ 1))        error_mem=$(($error_mem+1))        printf " memory check fail" >>$LOG        printf "**ERROR** No. %d Memory check fail %s\n\*Total memory size must be %s\n \------------------------------\n\*but right now is %s\n\n" $count "`date`" "$old_meminfo" "$new_meminfo" >>$FAILLOG    fifiprintf "\n" >>$LOGecho "RunTime: " $count " ErrorTime:" $error_mem > $COUNTFILEEOFcat>>$WARMBOOTSH<<"EOF"echo "Start reboot..."eval `eval echo $REBOOT`exit 0EOFchmod a+x $WARMBOOTSHecho "creating crontab service..."echo "*/$WAIT_TIME * * * * $WARMBOOTSH \"${WARMBOOT_PARENT_FD}\"">$WARMBOOT_PARENT_FD/warmboot/crontabsetcrontab $WARMBOOT_PARENT_FD/warmboot/crontabsetservice cron restart    echo -e "System will reboot in \033[31;5m$WAIT_TIME\033[0m

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值