更新ql raw

This commit is contained in:
whyour 2021-05-02 13:06:29 +08:00
parent e6ff4098c5
commit f5efad69ee
3 changed files with 85 additions and 63 deletions

View File

@ -37,10 +37,12 @@ list_own_drop=$dir_list_tmp/own_drop.list
link_name=( link_name=(
task task
ql ql
notify
) )
original_name=( original_name=(
task.sh task.sh
update.sh update.sh
notify.sh
) )
## 导入配置文件不校验 ## 导入配置文件不校验
@ -149,6 +151,8 @@ fix_config () {
make_dir $dir_db make_dir $dir_db
make_dir $dir_manual_log make_dir $dir_manual_log
make_dir $dir_scripts make_dir $dir_scripts
make_dir $dir_list_tmp
make_dir $dir_raw
if [ ! -s $file_config_user ]; then if [ ! -s $file_config_user ]; then
echo -e "复制一份 $file_config_sample$file_config_user,随后请按注释编辑你的配置文件:$file_config_user\n" echo -e "复制一份 $file_config_sample$file_config_user,随后请按注释编辑你的配置文件:$file_config_user\n"

View File

@ -49,7 +49,6 @@ git_pull_scripts() {
## 检测cron的差异$1脚本清单文件路径$2cron任务清单文件路径$3增加任务清单文件路径$4删除任务清单文件路径 ## 检测cron的差异$1脚本清单文件路径$2cron任务清单文件路径$3增加任务清单文件路径$4删除任务清单文件路径
diff_cron() { diff_cron() {
make_dir $dir_list_tmp
local list_scripts="$1" local list_scripts="$1"
local list_task="$2" local list_task="$2"
local list_add="$3" local list_add="$3"
@ -104,21 +103,27 @@ output_list_add_drop() {
fi fi
} }
## 自动删除失效的脚本与定时任务需要1.AutoDelCron/AutoDelCron 设置为 true2.正常更新js脚本没有报错3.存在失效任务4.crontab.list存在并且不为空 ## 自动删除失效的脚本与定时任务需要1.AutoDelCron 设置为 true2.正常更新js脚本没有报错3.存在失效任务
## $1失效任务清单文件路径 ## $1失效任务清单文件路径
del_cron() { del_cron() {
local list_drop=$1 local list_drop=$1
local author=$2
local detail detail2 local detail detail2
if [ -s $list_drop ] && [ -s $list_crontab_user ]; then
detail=$(cat $list_drop) detail=$(cat $list_drop)
echo -e "开始尝试自动删除失效的定时任务...\n" echo -e "开始尝试自动删除失效的定时任务...\n"
for cron in $detail; do for cron in $detail; do
local id=$(cat $list_crontab_user | grep -E "$cmd_task $cron$" | perl -pe "s|.*ID=(.*) $cmd_task $cron$|\1|") local id=$(cat $list_crontab_user | grep -E "$cmd_task $cron$" | perl -pe "s|.*ID=(.*) $cmd_task $cron$|\1|")
del_cron_api "$id" del_cron_api "$id"
rm -f "$dir_scripts/${cron}"
done done
exit_status=$?
detail2=$(echo $detail | perl -pe "s| |\\\n|g") detail2=$(echo $detail | perl -pe "s| |\\\n|g")
if [[ $exit_status -eq 0 ]]; then
echo -e "成功删除失效的的定时任务...\n" echo -e "成功删除失效的的定时任务...\n"
notify "删除失效任务通知" "成功删除以下失效的定时任务:\n$detail2" notify "删除失效任务通知" "成功删除以下失效的定时任务:\n$detail2"
else
echo -e "删除定时任务出错,请手动删除...\n"
notify "删除任务失败通知" "尝试自动删除以下定时任务出错,请手动删除:\n$detail2"
fi fi
} }
@ -138,13 +143,14 @@ add_cron() {
print if /.*([\d\*]*[\*-\/,\d]*[\d\*] ){4}[\d\*]*[\*-\/,\d]*[\d\*]( |,|\").*$file_name/ print if /.*([\d\*]*[\*-\/,\d]*[\d\*] ){4}[\d\*]*[\*-\/,\d]*[\d\*]( |,|\").*$file_name/
}" $file | }" $file |
perl -pe "{ perl -pe "{
s|[^\d\*]*(([\d\*]*[\*-\/,\d]*[\d\*] ){4}[\d\*]*[\*-\/,\d]*[\d\*])( \|,\|\").*/?$file_name.*|\1:$cmd_task $file|g; s|[^\d\*]*(([\d\*]*[\*-\/,\d]*[\d\*] ){4}[\d\*]*[\*-\/,\d]*[\d\*])( \|,\|\").*/?$file_name.*|\1|g;
s| | |g s| | |g
}" | sort -u | head -1 }" | sort -u | head -1
) )
cron_name=$(grep "new Env" $file | awk -F "'|\"" '{print $2}' | head -1) cron_name=$(grep "new Env" $file | awk -F "'|\"" '{print $2}' | head -1)
[[ -z $cron_name ]] && cron_name="$file_name" [[ -z $cron_name ]] && cron_name="$file_name"
add_cron_api "$cron_line:$cron_name" [[ -z $cron_line ]] && cron_line="0 6 * * *"
add_cron_api "$cron_line:$cmd_task $file:$cron_name"
fi fi
done done
exit_status=$? exit_status=$?
@ -190,21 +196,31 @@ update_repo() {
## 更新所有 raw 文件 ## 更新所有 raw 文件
update_raw() { update_raw() {
if [[ ${#RawUrl[*]} -gt 0 ]]; then
echo -e "--------------------------------------------------------------\n" echo -e "--------------------------------------------------------------\n"
make_dir $dir_raw local raw_url="$1"
for ((i = 0; i < ${#RawUrl[*]}; i++)); do raw_file_name=$(echo ${raw_url} | awk -F "/" '{print $NF}')
raw_file_name[$i]=$(echo ${RawUrl[i]} | awk -F "/" '{print $NF}') echo -e "开始下载:${raw_url} \n\n保存路径$dir_raw/${raw_file_name}\n"
echo -e "开始下载:${RawUrl[i]} \n\n保存路径$dir_raw/${raw_file_name[$i]}\n" wget -q --no-check-certificate -O "$dir_raw/${raw_file_name}.new" ${raw_url}
wget -q --no-check-certificate -O "$dir_raw/${raw_file_name[$i]}.new" ${RawUrl[i]}
if [[ $? -eq 0 ]]; then if [[ $? -eq 0 ]]; then
mv "$dir_raw/${raw_file_name[$i]}.new" "$dir_raw/${raw_file_name[$i]}" mv "$dir_raw/${raw_file_name}.new" "$dir_raw/${raw_file_name}"
echo -e "下载 ${raw_file_name[$i]} 成功...\n" echo -e "下载 ${raw_file_name} 成功...\n"
cp -f $raw_file_name $dir_scripts/raw_${filename}
cron_line=$(
perl -ne "{
print if /.*([\d\*]*[\*-\/,\d]*[\d\*] ){4}[\d\*]*[\*-\/,\d]*[\d\*]( |,|\").*$raw_file_name/
}" $raw_file_name |
perl -pe "{
s|[^\d\*]*(([\d\*]*[\*-\/,\d]*[\d\*] ){4}[\d\*]*[\*-\/,\d]*[\d\*])( \|,\|\").*/?$raw_file_name.*|\1|g;
s| | |g
}" | sort -u | head -1
)
cron_name=$(grep "new Env" $raw_file_name | awk -F "'|\"" '{print $2}' | head -1)
[[ -z $cron_name ]] && cron_name="$raw_file_name"
[[ -z $cron_line ]] && cron_line="0 6 * * *"
add_cron_api "$cron_line:$cmd_task raw_$raw_file_name:$cron_name"
else else
echo -e "下载 ${raw_file_name[$i]} 失败,保留之前正常下载的版本...\n" echo -e "下载 ${raw_file_name} 失败,保留之前正常下载的版本...\n"
[ -f "$dir_raw/${raw_file_name[$i]}.new" ] && rm -f "$dir_raw/${raw_file_name[$i]}.new" [ -f "$dir_raw/${raw_file_name}.new" ] && rm -f "$dir_raw/${raw_file_name}.new"
fi
done
fi fi
} }
@ -272,7 +288,9 @@ diff_scripts() {
if [ -s $list_own_drop ]; then if [ -s $list_own_drop ]; then
output_list_add_drop $list_own_drop "失效" output_list_add_drop $list_own_drop "失效"
[[ ${AutoDelCron} == true ]] && del_cron $list_own_drop if [[ ${AutoDelCron} == true ]]; then
del_cron $list_own_drop $2
fi
fi fi
if [ -s $list_own_add ]; then if [ -s $list_own_add ]; then
output_list_add_drop $list_own_add "新" output_list_add_drop $list_own_add "新"
@ -328,7 +346,7 @@ main() {
update_repo "$p2" "$p3" "$p4" | tee $log_path update_repo "$p2" "$p3" "$p4" | tee $log_path
;; ;;
raw) raw)
update_raw | tee $log_path update_raw "$p2" | tee $log_path
;; ;;
rmlog) rmlog)
source $dir_shell/rmlog.sh "$p2" | tee $log_path source $dir_shell/rmlog.sh "$p2" | tee $log_path