v1.8.2g
~定时任务增加条件“运行时每分钟执行” ~修复定时任务中部分推荐任务无法添加的bug ~修复定时任务因找不到目录执行失败的bug ~修复修改定时任务时原任务被意外删除的bug
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -3,4 +3,4 @@ clashpre_v=2022.11.25
|
|||||||
clash_v=v1.7.1
|
clash_v=v1.7.1
|
||||||
meta_v=v1.17.0
|
meta_v=v1.17.0
|
||||||
GeoIP_v=20231230
|
GeoIP_v=20231230
|
||||||
versionsh=1.8.2f
|
versionsh=1.8.2g
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
#任务ID#任务命令#任务说明(#号隔开,任务命令和说明中都不允许包含#号)
|
#任务ID#任务命令#任务说明(#号隔开,任务命令和说明中都不允许包含#号)
|
||||||
|
|
||||||
101#$clashdir/start.sh start#启动clash服务
|
101#$CRASHDIR/start.sh start#启动clash服务
|
||||||
102#$clashdir/start.sh stop#停止clash服务
|
102#$CRASHDIR/start.sh stop#停止clash服务
|
||||||
103#$clashdir/start.sh restart#重启clash服务
|
103#$CRASHDIR/start.sh restart#重启clash服务
|
||||||
104#$clashdir/start.sh getyaml && $clashdir/start.sh restart#更新订阅并重启服务
|
104#$CRASHDIR/start.sh getyaml && $CRASHDIR/start.sh restart#更新订阅并重启服务
|
||||||
105#$clashdir/start.sh updateyaml#热更新订阅
|
105#$CRASHDIR/start.sh updateyaml#热更新订阅
|
||||||
106#$clashdir/start.sh web_save#自动保存面板配置
|
106#$CRASHDIR/start.sh web_save#自动保存面板配置
|
||||||
107#$clashdir/start.sh ntp#自动同步ntp时间
|
107#$CRASHDIR/start.sh ntp#自动同步ntp时间
|
||||||
|
|
||||||
111#$clashdir/task/task.sh update_core#自动更新内核
|
111#$CRASHDIR/task/task.sh update_core#自动更新内核
|
||||||
112#$clashdir/task/task.sh update_shellclash#自动更新脚本
|
112#$CRASHDIR/task/task.sh update_shellclash#自动更新脚本
|
||||||
113#$clashdir/task/task.sh update_mmdb#自动更新数据库文件
|
113#$CRASHDIR/task/task.sh update_mmdb#自动更新数据库文件
|
||||||
|
|
||||||
121#$clashdir/task/task.sh reset_firewall#重设透明路由防火墙
|
121#$CRASHDIR/task/task.sh reset_firewall#重设透明路由防火墙
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# Copyright (C) Juewuy
|
# Copyright (C) Juewuy
|
||||||
|
|
||||||
version=1.8.2f
|
version=1.8.2g
|
||||||
|
|
||||||
setdir(){
|
setdir(){
|
||||||
dir_avail(){
|
dir_avail(){
|
||||||
|
|||||||
@@ -1298,6 +1298,12 @@ afstart(){
|
|||||||
{ sleep 5;logger Clash服务已启动!;} & #推送日志
|
{ sleep 5;logger Clash服务已启动!;} & #推送日志
|
||||||
#执行条件任务
|
#执行条件任务
|
||||||
[ -s $CRASHDIR/task/afstart ] && { source $CRASHDIR/task/afstart ;} &
|
[ -s $CRASHDIR/task/afstart ] && { source $CRASHDIR/task/afstart ;} &
|
||||||
|
[ -s $CRASHDIR/task/running ] && {
|
||||||
|
cronset '运行时每'
|
||||||
|
while read line ;do
|
||||||
|
cronset '2fjdi124dd12s' "$line"
|
||||||
|
done < $CRASHDIR/task/running
|
||||||
|
}
|
||||||
[ -s $CRASHDIR/task/affirewall -a -s /etc/init.d/firewall -a ! -f /etc/init.d/firewall.bak ] && {
|
[ -s $CRASHDIR/task/affirewall -a -s /etc/init.d/firewall -a ! -f /etc/init.d/firewall.bak ] && {
|
||||||
#注入防火墙
|
#注入防火墙
|
||||||
line=$(grep -En "fw3 restart" /etc/init.d/firewall | cut -d ":" -f 1)
|
line=$(grep -En "fw3 restart" /etc/init.d/firewall | cut -d ":" -f 1)
|
||||||
@@ -1354,9 +1360,9 @@ stop)
|
|||||||
logger Clash服务即将关闭……
|
logger Clash服务即将关闭……
|
||||||
[ -n "$(pidof clash)" ] && web_save #保存面板配置
|
[ -n "$(pidof clash)" ] && web_save #保存面板配置
|
||||||
#删除守护进程&面板配置自动保存
|
#删除守护进程&面板配置自动保存
|
||||||
cronset "clash保守模式守护进程"
|
cronset '保守模式守护进程'
|
||||||
cronset "保存面板配置"
|
cronset '运行时每'
|
||||||
cronset "流媒体预解析"
|
cronset '流媒体预解析'
|
||||||
#多种方式结束进程
|
#多种方式结束进程
|
||||||
if [ -f /etc/rc.common ];then
|
if [ -f /etc/rc.common ];then
|
||||||
/etc/init.d/clash stop >/dev/null 2>&1
|
/etc/init.d/clash stop >/dev/null 2>&1
|
||||||
@@ -1465,7 +1471,7 @@ web_restore)
|
|||||||
;;
|
;;
|
||||||
daemon)
|
daemon)
|
||||||
getconfig
|
getconfig
|
||||||
cronset '#clash保守模式守护进程' "*/1 * * * * test -z \"\$(pidof clash)\" && $CRASHDIR/start.sh restart #clash保守模式守护进程"
|
cronset '保守模式守护进程' "*/1 * * * * test -z \"\$(pidof clash)\" && $CRASHDIR/start.sh restart #保守模式守护进程"
|
||||||
;;
|
;;
|
||||||
cronset)
|
cronset)
|
||||||
cronset $2 $3
|
cronset $2 $3
|
||||||
|
|||||||
@@ -147,7 +147,6 @@ cronset(){
|
|||||||
rm -f $tmpcron
|
rm -f $tmpcron
|
||||||
#华硕/Padavan固件存档在本地,其他则删除
|
#华硕/Padavan固件存档在本地,其他则删除
|
||||||
[ "$CRASHDIR" = "/jffs/clash" -o "$CRASHDIR" = "/etc/storage/clash" ] && mv -f $tmpcron $CRASHDIR/task/cron || rm -f $tmpcron
|
[ "$CRASHDIR" = "/jffs/clash" -o "$CRASHDIR" = "/etc/storage/clash" ] && mv -f $tmpcron $CRASHDIR/task/cron || rm -f $tmpcron
|
||||||
echo -e "任务:【$1】\033[32m添加成功!\033[0m"
|
|
||||||
}
|
}
|
||||||
set_cron(){
|
set_cron(){
|
||||||
[ -z $week ] && week=*
|
[ -z $week ] && week=*
|
||||||
@@ -161,13 +160,20 @@ set_cron(){
|
|||||||
cronset "$cron_time$task_name" "$task_txt"
|
cronset "$cron_time$task_name" "$task_txt"
|
||||||
fi
|
fi
|
||||||
unset week hour min
|
unset week hour min
|
||||||
|
echo -e "任务:【$cron_time$task_name】\033[32m添加成功!\033[0m"
|
||||||
sleep 1
|
sleep 1
|
||||||
}
|
}
|
||||||
set_service(){
|
set_service(){
|
||||||
# 参数1代表要任务类型,参数2代表任务ID,参数3代表任务描述
|
# 参数1代表要任务类型,参数2代表任务ID,参数3代表任务描述,参数4代表running任务运行间隔
|
||||||
task_file=$CRASHDIR/task/$1
|
task_file=$CRASHDIR/task/$1
|
||||||
[ -s $task_file ] && sed -i "/$3/d" $task_file
|
[ -s $task_file ] && sed -i "/$3/d" $task_file
|
||||||
echo "$CRASHDIR/task/task.sh $2 $3" >> $task_file
|
if [ "$1" = "running" ];then
|
||||||
|
task_txt="$4 * * * * $CRASHDIR/task/task.sh $2 $3"
|
||||||
|
echo "$task_txt" >> $task_file #运行时每分钟执行的任务特殊处理
|
||||||
|
[ -n "$(pidof clash)" ] && cronset "$3" "$task_txt"
|
||||||
|
else
|
||||||
|
echo "$CRASHDIR/task/task.sh $2 $3" >> $task_file
|
||||||
|
fi
|
||||||
echo -e "任务:【$3】\033[32m添加成功!\033[0m"
|
echo -e "任务:【$3】\033[32m添加成功!\033[0m"
|
||||||
sleep 1
|
sleep 1
|
||||||
}
|
}
|
||||||
@@ -248,6 +254,7 @@ task_del(){ #任务删除
|
|||||||
#删除条件任务
|
#删除条件任务
|
||||||
sed -i "/$1/d" $CRASHDIR/task/bfstart 2>/dev/null
|
sed -i "/$1/d" $CRASHDIR/task/bfstart 2>/dev/null
|
||||||
sed -i "/$1/d" $CRASHDIR/task/afstart 2>/dev/null
|
sed -i "/$1/d" $CRASHDIR/task/afstart 2>/dev/null
|
||||||
|
sed -i "/$1/d" $CRASHDIR/task/running 2>/dev/null
|
||||||
sed -i "/$1/d" $CRASHDIR/task/affirewall 2>/dev/null
|
sed -i "/$1/d" $CRASHDIR/task/affirewall 2>/dev/null
|
||||||
}
|
}
|
||||||
task_type(){ #任务条件选择菜单
|
task_type(){ #任务条件选择菜单
|
||||||
@@ -260,13 +267,15 @@ task_type(){ #任务条件选择菜单
|
|||||||
echo -e " 4 定时任务\033[32m每分钟执行\033[0m"
|
echo -e " 4 定时任务\033[32m每分钟执行\033[0m"
|
||||||
echo -e " 5 服务\033[33m启动前执行\033[0m"
|
echo -e " 5 服务\033[33m启动前执行\033[0m"
|
||||||
echo -e " 6 服务\033[33m启动后执行\033[0m"
|
echo -e " 6 服务\033[33m启动后执行\033[0m"
|
||||||
echo -e " 7 防火墙服务\033[33m重启后执行\033[0m"
|
echo -e " 7 服务\033[33m运行时每分钟执行\033[0m"
|
||||||
|
echo -e " 8 防火墙服务\033[33m重启后执行\033[0m"
|
||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
echo -e " 0 返回上级菜单"
|
echo -e " 0 返回上级菜单"
|
||||||
read -p "请输入对应数字 > " num
|
read -p "请输入对应数字 > " num
|
||||||
case "$num" in
|
case "$num" in
|
||||||
|
|
||||||
0)
|
0)
|
||||||
|
return 1
|
||||||
;;
|
;;
|
||||||
1)
|
1)
|
||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
@@ -310,20 +319,30 @@ task_type(){ #任务条件选择菜单
|
|||||||
set_service afstart "$task_id" "服务启动后$task_name"
|
set_service afstart "$task_id" "服务启动后$task_name"
|
||||||
;;
|
;;
|
||||||
7)
|
7)
|
||||||
|
echo -----------------------------------------------
|
||||||
|
echo -e " 输入10即每隔10分钟运行一次,1440即每隔24小时运行一次"
|
||||||
|
read -p "想每隔多少分钟执行一次?(整数) > " num
|
||||||
|
min="*/$num"
|
||||||
|
set_service running "$task_id" "运行时每$num分钟$task_name" "$min"
|
||||||
|
;;
|
||||||
|
8)
|
||||||
echo -e "该功能会将相关启动代码注入到/etc/init.d/firewall中"
|
echo -e "该功能会将相关启动代码注入到/etc/init.d/firewall中"
|
||||||
read -p "是否继续?(1/0) > " res
|
read -p "是否继续?(1/0) > " res
|
||||||
[ "$res" = 1 ] && set_service affirewall "$task_id" "防火墙重启后$task_name"
|
[ "$res" = 1 ] && set_service affirewall "$task_id" "防火墙重启后$task_name"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
errornum
|
errornum
|
||||||
|
return 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
task_manager(){ #任务管理列表
|
task_manager(){ #任务管理列表
|
||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
#抽取并生成临时列表
|
#抽取并生成临时列表
|
||||||
croncmd -l | grep -oE "$CRASHDIR/task/task.sh .*" | awk -F ' ' '{print $2" "$3}' > $TMPDIR/task_list
|
croncmd -l > $TMPDIR/task_cronlist
|
||||||
|
cat $TMPDIR/task_cronlist $CRASHDIR/task/running | sort -u | grep -oE "task/task.sh .*" | awk -F ' ' '{print $2" "$3}' > $TMPDIR/task_list
|
||||||
cat $CRASHDIR/task/bfstart $CRASHDIR/task/afstart $CRASHDIR/task/affirewall 2>/dev/null | awk -F ' ' '{print $2" "$3}' >> $TMPDIR/task_list
|
cat $CRASHDIR/task/bfstart $CRASHDIR/task/afstart $CRASHDIR/task/affirewall 2>/dev/null | awk -F ' ' '{print $2" "$3}' >> $TMPDIR/task_list
|
||||||
|
rm -rf $TMPDIR/task_cronlist
|
||||||
#判断为空则返回
|
#判断为空则返回
|
||||||
if [ ! -s $TMPDIR/task_list ];then
|
if [ ! -s $TMPDIR/task_list ];then
|
||||||
echo -e "\033[31m当前没有可供管理的任务!\033[36m"
|
echo -e "\033[31m当前没有可供管理的任务!\033[36m"
|
||||||
@@ -406,9 +425,10 @@ task_recom(){ #任务推荐
|
|||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
read -p "是否启用?(1/0) > " res
|
read -p "是否启用?(1/0) > " res
|
||||||
[ "$res" = 1 ] && {
|
[ "$res" = 1 ] && {
|
||||||
cronset "每隔10分钟自动保存面板配置" "*/10 * * * * $CRASHDIR/task/task.sh 106 每隔10分钟自动保存面板配置"
|
set_service running "106" "运行时每10分钟自动保存面板配置" "1/10"
|
||||||
cronset "在每周3的3点整更新订阅并重启服务" "0 3 * * 3 /data/clash/task/task.sh 104 在每周3的3点整更新订阅并重启服务"
|
|
||||||
set_service afstart "107" "服务启动后自动同步ntp时间"
|
set_service afstart "107" "服务启动后自动同步ntp时间"
|
||||||
|
cronset "在每周3的3点整更新订阅并重启服务" "0 3 * * 3 $CRASHDIR/task/task.sh 104 在每周3的3点整更新订阅并重启服务" && \
|
||||||
|
echo -e "任务:【在每周3的3点整更新订阅并重启服务】\033[32m添加成功!\033[0m"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
task_menu(){ #任务菜单
|
task_menu(){ #任务菜单
|
||||||
|
|||||||
Reference in New Issue
Block a user