立即注册 登录
恩山无线论坛 返回首页

huierwsh的个人空间 https://www.right.com.cn/FORUM/?323315 [收藏] [复制] [RSS]

留言板

facelist

您需要登录后才可以留言 登录 | 立即注册


huierwsh 2017-3-23 08:33
#!/bin/sh
# version: 1.0.1
# author: 荒野无灯
# date: 2017-03-22
# url: http://p4davan.80x86.io
# made for my padavan mod firmware.
# ref: https://github.com/koolproxy/merlin-koolproxy/blob/master/koolproxy/scripts/koolproxy_rule_update.sh
# nvram set koolproxy_update_server=http://entware.mirrors.ligux.com/koolproxy

KP_VERSION_FILE=/etc/storage/koolproxy/data/version
KP_DATA_DIR=/etc/storage/koolproxy/rules_store
KP_LOG_LEVEL=`nvram get koolproxy_log_level`
KOOLPROXY_UPDATE_SERVER=`nvram get koolproxy_update_server`
TMP_VERSION_FILE=/tmp/version
TMP_KP_FILE=/tmp/kp.txt

func_my_logger() {
    #log level (0:DEBUG, 1:INFO, 2:AD, 3:WARNING, 4:ERROR), default value is ERROR
    if [ "$KP_LOG_LEVEL" -lt "2" ]; then
        logger -t "[koolproxy]" "$1"
    fi
}

#generate version file
func_generate_tmp_ver() {
    rm -rf ${TMP_VERSION_FILE}
    wget -q -O${TMP_KP_FILE} ${KOOLPROXY_UPDATE_SERVER}/koolproxy.txt
    sed -n '1p' ${TMP_KP_FILE} | awk -F' ' '{print $3,$4}'> ${TMP_VERSION_FILE} && sed -n '2p' ${TMP_KP_FILE} | awk -F' ' '{print $3,$4}'>> ${TMP_VERSION_FILE}
}

func_update_koolproxy_rules() {
local rule_type=$1
local rule_basename=$2

if [ -s "$TMP_VERSION_FILE" ]; then
    func_my_logger " ========== 在线版本检测 =========="
    # 检查规则更新
    if [ "$rule_type" == "static" ]; then
        rules_date_local=`cat ${KP_DATA_DIR}/version| awk 'NR==1{print}'`
        rules_date_web=`cat ${TMP_VERSION_FILE}| awk 'NR==1{print}'`
    else
        rules_date_local=`cat ${KP_DATA_DIR}/version| awk 'NR==2{print}'`
        rules_date_web=`cat ${TMP_VERSION_FILE}| awk 'NR==2{print}'`
    fi
    rules_date_local_ts=$(date -d "$rules_date_local" +%s)
    rules_date_web_ts=$(date -d "$rules_date_web" +%s)
    if [ "$rules_date_web_ts"== "" ]; then
        func_my_logger " $rule_type 规则更新失败,无法获取网络版本号!"
        exit 1
    fi
    #fix old version file
    if [ "$rules_date_local_ts" == "" ]; then
        rules_date_local_ts=0
    fi

    if [ "$rules_date_web_ts" -gt "$rules_date_local_ts" ];then
        func_my_logger " $rule_type 规则成功检测到更新,开始更新 $rule_type 规则!"
        rm -rf /tmp/${rule_basename}
        wget -q -O/tmp/${rule_basename} ${KOOLPROXY_UPDATE_SERVER}/${rule_basename}
        if [ "$?" == "0" ]; then
            cp -f /tmp/${rule_basename} ${KP_DATA_DIR}
            func_my_logger " $rule_type 规则更新成功!"
            rules_nu_web=`cat /tmp/${rule_basename} | grep -v ! | wc -l`
            rm -rf /tmp/${rule_basename}
            func_my_logger " ========== $rule_type 规则 =========="
            func_my_logger " 本地 $rule_type 规则日期:$rules_date_local"
            func_my_logger " ----------------------------------"
            func_my_logger " 在线 $rule_type 规则日期:$rules_date_web"
            func_my_logger " ----------------------------------"
        else
            func_my_logger " $rule_type 规则下载失败! 请检查你的网络!"
        fi
    else
        func_my_logger " ========== $rule_type 规则 =========="
        func_my_logger " 本地 $rule_type 规则日期:$rules_date_local"
        func_my_logger " ----------------------------------"
        func_my_logger " 在线 $rule_type 规则日期:$rules_date_web"
        func_my_logger " ----------------------------------"
        func_my_logger " $rule_type 规则版本未变化,不应用更新!"
    fi
else
    func_my_logger " 检测在线版本号错误! 请检查你的网络!"
fi
}

func_update_nvram() {
    mv -f ${TMP_VERSION_FILE} ${KP_DATA_DIR}
    nvram set koolproxy_rules_last_update="`cat ${KP_DATA_DIR}/version|awk 'NR==1{print}'`"
    nvram set koolproxy_rules_nu_last_update="`cat ${KP_DATA_DIR}/koolproxy.txt | grep -v ! | wc -l`"
    nvram set koolproxy_video_last_update="`cat ${KP_DATA_DIR}/version|awk 'NR==2{print}'`"
}

func_clean() {
    rm -f ${TMP_VERSION_FILE}
    rm -f ${TMP_KP_FILE}
}

func_generate_tmp_ver
# do update
func_update_koolproxy_rules static koolproxy.txt
func_update_koolproxy_rules video 1.dat
func_update_nvram
func_clean

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-20 04:25

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

返回顶部