定时执行脚本2
2016-07-14 15:30
155 查看
上一个定时重启的脚本不太好,重写一个
1、首先读取配置文件的信息
2、sleep直到期望的星期
3、sleep直到期望的时间
#!/bin/bash
rebootoperator ()
{
echo "rebootoperatoring"
kill -9 $(lsof -i:30000 | sed -n '2p' | awk '{print $2}')
sleep 5
killall DecoderProcess
sleep 5
killall X
sleep 5
killall X
sleep 5
kill -9 $(lsof -i:20000 | sed -n '2p' | awk '{print $2}')
cd /home/nvrapp
./clear_process.sh
cd -
echo "time is up, start reboot, NowDate $NowDate !!!!!!" >> /home/JuntaiNvrLog/jtRebootrecord.log
reboot
exit 0
}
rebootoperatortest ()
{
echo "rebootoperatortest^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"
}
StartTime=`date +'%Y-%m-%d %H:%M:%S'`
echo "-----------------------New Start Run at $StartTime, version 1.01 ---------------------"
if [ ! -f JtRestartCronTab ]; then
echo "no JtRestartCronTab file, exit"
exit 0
fi
OneDaySecond=86400
HalfDaySecond=43200
OneHour=3600
#minute hour day month week command
Cmd=`awk 'NR==1 {print $0}' JtRestartCronTab`
Minute=`awk 'NR==1 {print $1}' JtRestartCronTab`
Hour=`awk 'NR==1 {print $2}' JtRestartCronTab`
WeekS=`awk 'NR==1 {print $5}' JtRestartCronTab`
Time=`expr $Hour \* 60 \* 60 + $Minute \* 60`
echo "minute hour day month week command"
echo "Minute $Minute, Hour $Hour, Time $Time, WeekS $WeekS, Cmd $Cmd"
if [ "$WeekS" = "*" ]; then
echo "* mean no week, exit"
exit 0
fi
echo "we config weeks, killall jtRebootDaemon.sh and use this script to control reboot"
killall jtRebootDaemon.sh
killall jtRebootDaemon.sh
echo "sleep about 23 hours"
#sleep 82800
WeekS=${WeekS//,/ }
echo "week list is $WeekS"
#while((1));do
#{
echo "----------this while go to the expect week"
while((1)); do
{
NowDate=`date +'%Y-%m-%d %H:%M:%S'`
NowHour=`date +%H`
NowMinute=`date +%M`
NowSecond=`date +%S`
NowWeek=`date +%w`
NowTime=`expr $NowHour \* 60 \* 60 + $NowMinute \* 60 + $NowSecond`
echo "NowHour $NowHour, NowMinute $NowMinute, NowWeek $NowWeek, NowTime $NowTime"
#7 is a invalid value
ExpectWeek=7
for Week in $WeekS
do
if [ $Week -eq $NowWeek ]; then
echo "Week $Week equal NowWeek $NowWeek, check the time"
if [ $Time -ge $NowTime ]; then
ExpectWeek=$Week
echo "Week $Week equal NowWeek $NowWeek, Need Reboot Time $Time greate NowTime $NowTime, break"
break
fi
echo "Week $Week equal NowWeek $NowWeek, but need reboot Time $Time little or equal NowTime $NowTime, go on to find"
else
echo "Week $Week not equal NowWeek $NowWeek, go on to find"
fi
done
if [ $ExpectWeek -eq 7 ]; then
SleepTime=`expr 86400 - $NowHour \* 60 \* 60 - $NowMinute \* 60 - $NowSecond`
if [ $SleepTime -gt 3600 ];then
SleepTime2c3=`expr $SleepTime \* 2 / 3`
echo "Not find the ExpectWeek, sleep all the day left $SleepTime second, but sleep $SleepTime2c3"
sleep $SleepTime2c3
else
echo "Not find the ExpectWeek, sleep all the day left $SleepTime second"
sleep $SleepTime
fi
else
echo "we need reboot at week $ExpectWeek, Hour $Hour, Minute $Minute"
break
fi
}
done
#CanReboot=0
echo "----------this while go to the expect time"
while ((1)); do
{
NowWeek=`date +%w`
NowHour=`date +%H`
NowMinute=`date +%M`
NowSecond=`date +%S`
NowTime=`expr $NowHour \* 60 \* 60 + $NowMinute \* 60 + $NowSecond`
SleepTime=`expr $Time - $NowTime`
if [ $SleepTime -gt 0 ]; then
#CanReboot=1
if [ $SleepTime -gt 3600 ]; then
echo "now week $NowWeek is expect week $ExpectWeek, SleepTime $SleepTime is great than 3600, sleep 3600, now time is $(date +'%Y-%m-%d %H:%M:%S')"
sleep 3600
echo "now week $NowWeek is expect week $ExpectWeek, SleepTime $SleepTime is great than 3600, sleep 3600 over, now time is $(date +'%Y-%m-%d %H:%M:%S')"
else
echo "now week $NowWeek is expect week $ExpectWeek, SleepTime $SleepTime is little 3600, sleep $SleepTime, now time is $(date +'%Y-%m-%d %H:%M:%S')"
sleep $SleepTime
echo "now week $NowWeek is expect week $ExpectWeek, SleepTime $SleepTime is little 3600, sleep $SleepTime over, now time is $(date +'%Y-%m-%d %H:%M:%S')"
fi
else
# if [ $CanReboot -eq 1 ]; then
echo "now week $NowWeek is expect week $ExpectWeek, SleepTime is $SleepTime, reboot!!!, now time is $(date +'%Y-%m-%d %H:%M:%S')"
sleep 2
# rebootoperator
# exit 0
# CanReboot=0
break
# else
# echo "now week $NowWeek is expect week $ExpectWeek, SleepTime is $SleepTime, reboot!!!, now time is $(date +'%Y-%m-%d %H:%M:%S'), CanReboot is $CanReboot"
# fi
fi
}
done
#}
#done
1、首先读取配置文件的信息
2、sleep直到期望的星期
3、sleep直到期望的时间
#!/bin/bash
rebootoperator ()
{
echo "rebootoperatoring"
kill -9 $(lsof -i:30000 | sed -n '2p' | awk '{print $2}')
sleep 5
killall DecoderProcess
sleep 5
killall X
sleep 5
killall X
sleep 5
kill -9 $(lsof -i:20000 | sed -n '2p' | awk '{print $2}')
cd /home/nvrapp
./clear_process.sh
cd -
echo "time is up, start reboot, NowDate $NowDate !!!!!!" >> /home/JuntaiNvrLog/jtRebootrecord.log
reboot
exit 0
}
rebootoperatortest ()
{
echo "rebootoperatortest^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"
}
StartTime=`date +'%Y-%m-%d %H:%M:%S'`
echo "-----------------------New Start Run at $StartTime, version 1.01 ---------------------"
if [ ! -f JtRestartCronTab ]; then
echo "no JtRestartCronTab file, exit"
exit 0
fi
OneDaySecond=86400
HalfDaySecond=43200
OneHour=3600
#minute hour day month week command
Cmd=`awk 'NR==1 {print $0}' JtRestartCronTab`
Minute=`awk 'NR==1 {print $1}' JtRestartCronTab`
Hour=`awk 'NR==1 {print $2}' JtRestartCronTab`
WeekS=`awk 'NR==1 {print $5}' JtRestartCronTab`
Time=`expr $Hour \* 60 \* 60 + $Minute \* 60`
echo "minute hour day month week command"
echo "Minute $Minute, Hour $Hour, Time $Time, WeekS $WeekS, Cmd $Cmd"
if [ "$WeekS" = "*" ]; then
echo "* mean no week, exit"
exit 0
fi
echo "we config weeks, killall jtRebootDaemon.sh and use this script to control reboot"
killall jtRebootDaemon.sh
killall jtRebootDaemon.sh
echo "sleep about 23 hours"
#sleep 82800
WeekS=${WeekS//,/ }
echo "week list is $WeekS"
#while((1));do
#{
echo "----------this while go to the expect week"
while((1)); do
{
NowDate=`date +'%Y-%m-%d %H:%M:%S'`
NowHour=`date +%H`
NowMinute=`date +%M`
NowSecond=`date +%S`
NowWeek=`date +%w`
NowTime=`expr $NowHour \* 60 \* 60 + $NowMinute \* 60 + $NowSecond`
echo "NowHour $NowHour, NowMinute $NowMinute, NowWeek $NowWeek, NowTime $NowTime"
#7 is a invalid value
ExpectWeek=7
for Week in $WeekS
do
if [ $Week -eq $NowWeek ]; then
echo "Week $Week equal NowWeek $NowWeek, check the time"
if [ $Time -ge $NowTime ]; then
ExpectWeek=$Week
echo "Week $Week equal NowWeek $NowWeek, Need Reboot Time $Time greate NowTime $NowTime, break"
break
fi
echo "Week $Week equal NowWeek $NowWeek, but need reboot Time $Time little or equal NowTime $NowTime, go on to find"
else
echo "Week $Week not equal NowWeek $NowWeek, go on to find"
fi
done
if [ $ExpectWeek -eq 7 ]; then
SleepTime=`expr 86400 - $NowHour \* 60 \* 60 - $NowMinute \* 60 - $NowSecond`
if [ $SleepTime -gt 3600 ];then
SleepTime2c3=`expr $SleepTime \* 2 / 3`
echo "Not find the ExpectWeek, sleep all the day left $SleepTime second, but sleep $SleepTime2c3"
sleep $SleepTime2c3
else
echo "Not find the ExpectWeek, sleep all the day left $SleepTime second"
sleep $SleepTime
fi
else
echo "we need reboot at week $ExpectWeek, Hour $Hour, Minute $Minute"
break
fi
}
done
#CanReboot=0
echo "----------this while go to the expect time"
while ((1)); do
{
NowWeek=`date +%w`
NowHour=`date +%H`
NowMinute=`date +%M`
NowSecond=`date +%S`
NowTime=`expr $NowHour \* 60 \* 60 + $NowMinute \* 60 + $NowSecond`
SleepTime=`expr $Time - $NowTime`
if [ $SleepTime -gt 0 ]; then
#CanReboot=1
if [ $SleepTime -gt 3600 ]; then
echo "now week $NowWeek is expect week $ExpectWeek, SleepTime $SleepTime is great than 3600, sleep 3600, now time is $(date +'%Y-%m-%d %H:%M:%S')"
sleep 3600
echo "now week $NowWeek is expect week $ExpectWeek, SleepTime $SleepTime is great than 3600, sleep 3600 over, now time is $(date +'%Y-%m-%d %H:%M:%S')"
else
echo "now week $NowWeek is expect week $ExpectWeek, SleepTime $SleepTime is little 3600, sleep $SleepTime, now time is $(date +'%Y-%m-%d %H:%M:%S')"
sleep $SleepTime
echo "now week $NowWeek is expect week $ExpectWeek, SleepTime $SleepTime is little 3600, sleep $SleepTime over, now time is $(date +'%Y-%m-%d %H:%M:%S')"
fi
else
# if [ $CanReboot -eq 1 ]; then
echo "now week $NowWeek is expect week $ExpectWeek, SleepTime is $SleepTime, reboot!!!, now time is $(date +'%Y-%m-%d %H:%M:%S')"
sleep 2
# rebootoperator
# exit 0
# CanReboot=0
break
# else
# echo "now week $NowWeek is expect week $ExpectWeek, SleepTime is $SleepTime, reboot!!!, now time is $(date +'%Y-%m-%d %H:%M:%S'), CanReboot is $CanReboot"
# fi
fi
}
done
#}
#done
相关文章推荐
- Android源码编译第三方app(Android studio编写项目)如何写Android.mk
- HTTPS通信中的身份认证机制
- studio 提交忽略
- 推免与开漏输出详解
- Spark核心RDD理解
- 收藏:ASP.NET提供文件下载函数(支持大文件、续传、速度限制、资源占用小) (转自: Arhrun)
- 51nod1623完美消除 【数位dp】
- 对部分开源库封装一层再使用
- 细谈select函数(C语言)
- JavaScript 数组
- DialogFrament遇到的两个坑
- 如何在线将pdf转换成图片格式
- swust1741: 最长递增子序列问题
- maven向本地仓库导入jar包(处理官网没有的jar包)
- H5前端性能测试快速入门
- android项目命名规则
- 博学谷云课堂“超级设计师”在线就业班送大礼
- 机器学习之(六)常见机器学习算法比较
- 应用测试中的弱网络模拟测试-微信测试工程师手把手教程
- maven如何修改本地仓库与中央仓库