mirror of
https://github.com/kenzok8/small-package.git
synced 2026-01-14 11:25:06 +08:00
159 lines
2.8 KiB
Bash
159 lines
2.8 KiB
Bash
#!/bin/sh
|
|
# author 2021 jjm2473
|
|
# author 2020-2024 sirpdboy
|
|
TMP_T=/var/taskplan/taskplan.tmp
|
|
LOG=/etc/taskplan/taskplan.log
|
|
log(){
|
|
echo "$(date +'%Y-%m-%d %H:%M:%S') $*" >> $LOG
|
|
}
|
|
|
|
limit_log() {
|
|
local logf=$1
|
|
[ ! -f "$logf" ] && return
|
|
local sc=100
|
|
[ -n "$2" ] && sc=$2
|
|
local count=$(grep -c "" $logf)
|
|
if [ $count -gt $sc ];then
|
|
let count=count-$sc
|
|
sed -i "1,$count d" $logf
|
|
fi
|
|
}
|
|
|
|
remwan3() {
|
|
while true; do
|
|
status=$(/usr/sbin/mwan3 status | grep error)
|
|
if [ -z $status ]; then
|
|
log "Mwan3 is OK"
|
|
exit 1
|
|
else
|
|
log "mwan3 restarting ..."
|
|
/usr/sbin/mwan3 restart
|
|
fi
|
|
sleep 60
|
|
done
|
|
}
|
|
|
|
disreconnwan() {
|
|
i=0
|
|
PingA=114.114.114.114
|
|
PingB=223.5.5.5
|
|
while [[ $i -lt 5 ]]
|
|
do
|
|
if /bin/ping -c 1 $PingA >/dev/null
|
|
then
|
|
PingErr=0
|
|
break
|
|
else
|
|
if /bin/ping -c 1 $PingB >/dev/null
|
|
then
|
|
PingErr=0
|
|
break
|
|
else
|
|
i=$(($i + 1))
|
|
PingErr=1
|
|
sleep 10
|
|
fi
|
|
fi
|
|
done
|
|
}
|
|
|
|
trigger() {
|
|
case "$1" in
|
|
reboot)
|
|
reboot
|
|
;;
|
|
poweroff)
|
|
poweroff
|
|
;;
|
|
network)
|
|
/etc/init.d/network restart
|
|
;;
|
|
clearmem)
|
|
sync && echo 3 > /proc/sys/vm/drop_caches
|
|
;;
|
|
sysfree)
|
|
cd /overlay
|
|
rm -rf `ls | egrep -v '(upper|.fs_state)'`
|
|
cd upper
|
|
rm -rf `ls | egrep -v '(etc)'`
|
|
cd etc
|
|
rm -rf `ls | egrep -v '(config|ssr|bench.log|shadow)'`
|
|
rm -rf /var/luci-modulecache
|
|
rm -rf /var/luci-indexcache
|
|
rm -rf /tmp/cache/*
|
|
reboot
|
|
;;
|
|
restartsamba)
|
|
/etc/init.d/ksmdb restart
|
|
/etc/init.d/samba restart
|
|
/etc/init.d/samba4 restart
|
|
;;
|
|
|
|
restartlan)
|
|
ifdown lan && ifup lan
|
|
log "restart lan succeeded!"
|
|
;;
|
|
restartwan)
|
|
ifup wan
|
|
log "restart wan succeeded!"
|
|
;;
|
|
closewan)
|
|
ifdown wan
|
|
;;
|
|
disreconn)
|
|
disreconnwan
|
|
if [ $PingErr = 1 ]; then
|
|
ifup wan
|
|
log "Redial succeeded!"
|
|
fi
|
|
;;
|
|
disrereboot)
|
|
disreconnwan
|
|
if [ $PingErr = 1 ]; then
|
|
log "Reboot succeeded!"
|
|
reboot
|
|
fi
|
|
;;
|
|
restartmwan3)
|
|
[ -s /usr/sbin/mwan3 ] && remwan3
|
|
;;
|
|
customscript)
|
|
script=`cat /etc/taskplan/taskplancustomscript | wc -l`
|
|
if [[ $script > 0 ]] ;then
|
|
bash /etc/taskplan/taskplancustomscript
|
|
log "CustomScript succeeded!"
|
|
else
|
|
log "CustomScript run Error!"
|
|
fi
|
|
;;
|
|
customscript2)
|
|
script=`cat /etc/taskplan/taskplancustomscript2 | wc -l`
|
|
if [[ $script > 0 ]] ;then
|
|
bash /etc/taskplan/taskplancustomscript2
|
|
log "CustomScript2 succeeded!"
|
|
else
|
|
log "CustomScript2 run Error!"
|
|
fi
|
|
;;
|
|
upwifi)
|
|
ifconfig wlan0 up
|
|
uci set wireless.radio0.disabled=0
|
|
uci set wireless.radio1.disabled=0
|
|
uci commit wireless
|
|
wifi up
|
|
;;
|
|
downwifi)
|
|
ifconfig wlan0 down
|
|
uci set wireless.radio0.disabled=1
|
|
uci set wireless.radio1.disabled=1
|
|
uci commit wireless
|
|
wifi down
|
|
;;
|
|
esac
|
|
}
|
|
|
|
limit_log $LOG 500
|
|
PingErr=0
|
|
log "Scheduled operation $2: $1" && trigger $1
|
|
|