mirror of
https://github.com/caiwx86/small-packages.git
synced 2026-10-29 22:05:13 +08:00
update 2026-05-13 01:55:45
This commit is contained in:
1 parent
1b6001bfed
commit
6f4a0231c5
1857 files changed
+749084
-99
No files matched your search
@@ -0,0 +1,130 @@
|
||||
#!/bin/bash
|
||||
|
||||
# [K] (C)2020
|
||||
# http://github.com/kongfl888/luci-app-timedreboot
|
||||
|
||||
sleep 5s
|
||||
|
||||
if [ ! -e "/etc/config/timedreboot" ]; then
|
||||
echo "timedreboot cfg is not exit" >> /tmp/timedreboot.log
|
||||
logger "timedreboot cfg is not exit. Stop!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
renable=1
|
||||
|
||||
# --------function--------
|
||||
|
||||
get_cfg_value(){
|
||||
|
||||
v=`uci get timedreboot.@main[0].$1 2>/dev/null`
|
||||
|
||||
if [ ! -z "$v" ]; then
|
||||
echo "$v"
|
||||
else
|
||||
echo "1"
|
||||
fi
|
||||
}
|
||||
|
||||
get_cron_timestr() {
|
||||
str1=`cat /etc/crontabs/root | grep "dorboot"`
|
||||
m1=`echo "$str1" | cut -d " " -f 1`
|
||||
h2=`echo "$str1" | cut -d " " -f 2`
|
||||
w5=`echo "$str1" | cut -d " " -f 5`
|
||||
echo "$m1 $h2 * * $w5"
|
||||
}
|
||||
|
||||
get_cron_parameter() {
|
||||
str=`cat /etc/crontabs/root | grep "dorboot" | cut -d " " -f 7`
|
||||
echo "$str"
|
||||
}
|
||||
|
||||
|
||||
clear_cron(){
|
||||
sed -i '/dorboot/d' /etc/crontabs/root >/dev/null 2>&1
|
||||
/etc/init.d/cron restart
|
||||
}
|
||||
|
||||
set_cron() {
|
||||
echo "Timed Reboot is set." > /tmp/timedreboot.log
|
||||
clear_cron
|
||||
echo "${1} /usr/bin/dorboot ${2}" >> /etc/crontabs/root
|
||||
}
|
||||
|
||||
rebootsys() {
|
||||
if [ "${1}" = "1" ]; then
|
||||
uci set timedreboot.@main[0].enable="0"
|
||||
uci set timedreboot.@main[0].once="0"
|
||||
uci commit timedreboot
|
||||
clear_cron
|
||||
fi
|
||||
sleep 5s
|
||||
touch /etc/banner
|
||||
sleep 5s
|
||||
reboot
|
||||
}
|
||||
|
||||
justcfg() {
|
||||
local minute=`get_cfg_value "minute"`
|
||||
local hour=`get_cfg_value "hour"`
|
||||
local week=`get_cfg_value "week"`
|
||||
local sday=`get_cfg_value "sday"`
|
||||
local once=`get_cfg_value "once"`
|
||||
|
||||
if [ $minute = 0 ] ; then
|
||||
minute="00"
|
||||
fi
|
||||
if [ $week != 8 ] ; then
|
||||
sday="*"
|
||||
else
|
||||
sday=`echo $sday | grep -owE "^[0-9]+\-[0-9]+|^[0-9]+(,[0-9]+)*"`
|
||||
[ -z $sday ] && sday=15
|
||||
fi
|
||||
if [ $week -gt 6 ] ; then
|
||||
week="*"
|
||||
fi
|
||||
|
||||
renable=`get_cfg_value "enable"`
|
||||
|
||||
param=`get_cron_parameter`
|
||||
|
||||
cfgstr="$minute $hour $sday * $week"
|
||||
cronstr=`get_cron_timestr`
|
||||
|
||||
if [ "$renable" == "0" ]; then
|
||||
clear_cron
|
||||
echo "Timed Reboot has been cleared." > /tmp/timedreboot.log
|
||||
elif [ "$cfgstr" == "$cronstr" ]; then
|
||||
if [ -z "$param" ]; then
|
||||
echo "1"
|
||||
set_cron "$cfgstr" "$once"
|
||||
elif [ "$param" != "$once" ]; then
|
||||
echo "2"
|
||||
set_cron "$cfgstr" "$once"
|
||||
else
|
||||
echo "3"
|
||||
echo "Timed Reboot is set." > /tmp/timedreboot.log
|
||||
exit 0
|
||||
fi
|
||||
else
|
||||
echo "4"
|
||||
set_cron "$cfgstr" "$once"
|
||||
fi
|
||||
}
|
||||
|
||||
# ------------main-------------
|
||||
|
||||
renable=`get_cfg_value "enable"`
|
||||
if [ "$renable" != "0" ]; then
|
||||
/etc/init.d/timedreboot enable
|
||||
fi
|
||||
|
||||
if [ "${1}" = "0" -o "${1}" = "1" ]; then
|
||||
rebootsys
|
||||
else
|
||||
justcfg
|
||||
sleep 10s
|
||||
justcfg
|
||||
fi
|
||||
|
||||
exit 0
|
||||
Reference in new issue
Block a user