From 571e7b1841983b362a6b3b79d7fa8746863393af Mon Sep 17 00:00:00 2001 From: monlor Date: Sat, 20 Jun 2020 11:58:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=80=E4=BA=9B=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E6=BA=90=E5=A4=B1=E6=95=88=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 10 ++- apps/mixbox/bin/base | 3 +- apps/mixbox/bin/mixbox | 7 +- apps/mixbox/config/mixbox.uci | 4 +- apps/shadowsocks/config/shadowsocks.uci | 4 +- apps/shadowsocks/scripts/shadowsocks.sh | 14 +++- install_ghcdn.sh | 97 +++++++++++++++++++++++++ 7 files changed, 126 insertions(+), 13 deletions(-) create mode 100644 install_ghcdn.sh diff --git a/README.md b/README.md index 9ba8fa5..e0b7588 100644 --- a/README.md +++ b/README.md @@ -78,16 +78,22 @@ sh -c "$(curl -kfsSl https://monlor.coding.net/p/mbfiles/d/mbfiles/git/lfs/maste sh -c "$(curl -kfsSl https://raw.githubusercontent.com/monlor/mbfiles/master/install_github.sh)" && source /etc/profile &> /dev/null ``` +#### ghcdn源一键安装命令 + +``` shell +sh -c "$(curl -kfsSl https://cdn.jsdelivr.net/gh/monlor/mbfiles/install_ghcdn.sh)" && source /etc/profile &> /dev/null +``` + ### 手动更新命令 ``` shell -sh -c "$(curl -kfsSl https://monlor.coding.net/p/mbfiles/d/mbfiles/git/lfs/master/update.sh)" && source /etc/profile &> /dev/null +sh -c "$(curl -kfsSl https://cdn.jsdelivr.net/gh/monlor/mbfiles/update.sh)" && source /etc/profile &> /dev/null ``` ### 手动卸载命令 ``` shell -sh -c "$(curl -kfsSl https://raw.githubusercontent.com/monlor/MIXBOX/master/apps/mixbox/scripts/uninstall.sh)" && source /etc/profile &> /dev/null +sh -c "$(curl -kfsSl https://cdn.jsdelivr.net/gh/monlor/MIXBOX/apps/mixbox/scripts/uninstall.sh)" && source /etc/profile &> /dev/null ``` #### 一键更新所有插件(请先更新工具箱) diff --git a/apps/mixbox/bin/base b/apps/mixbox/bin/base index c48600c..c043451 100644 --- a/apps/mixbox/bin/base +++ b/apps/mixbox/bin/base @@ -5,7 +5,8 @@ export PATH=$PATH:/etc/mixbox/bin mburl_coding="https://monlor.coding.net/p/mbfiles/d/mbfiles/git/lfs/master" mburl_github="https://raw.githubusercontent.com/monlor/mbfiles/master" mburl_gitee="https://gitee.com/monlor/mbfiles/raw/master" -mburl=$(mbdb get mixbox.main.url) || mburl="$mburl_gitee" +mburl_ghcdn="https://cdn.jsdelivr.net/gh/monlor/mbfiles" +mburl=$(mbdb get mixbox.main.url) || mburl="$mburl_coding" mbroot=$(mbdb get mixbox.main.path) mbdisk=$(mbdb get mixbox.main.mbdisk) mbbackup="/etc/mbbackup" diff --git a/apps/mixbox/bin/mixbox b/apps/mixbox/bin/mixbox index 7a537e2..a42c92a 100644 --- a/apps/mixbox/bin/mixbox +++ b/apps/mixbox/bin/mixbox @@ -1,4 +1,4 @@ -#!/bin/sh +e#!/bin/sh #copyright by monlor #------------------【Tools】-------------------- source /etc/mixbox/bin/base @@ -172,6 +172,7 @@ modify_source() { "$mburl_coding") url_text="coding下载源" ;; "$mburl_github") url_text="github下载源" ;; # "$mburl_gitee") url_text="gitee下载源" ;; + "$mburl_ghcdn") url_text="ghcdn下载源" ;; *) url_text="$mburl" ;; esac echo "下载源【$url_text】使用中" @@ -179,12 +180,14 @@ modify_source() { echo "1. coding下载源" echo "2. github下载源" # echo "3. gitee下载源(推荐)" + echo "3. ghcdn下载源" read -p "请选择或输入下载源:" res case "$res" in 0) return ;; 1) mburl_tmp="$mburl_coding" ;; 2) mburl_tmp="$mburl_github" ;; # 3) mburl_tmp="$mburl_gitee" ;; + 3) mburl_tmp="$mburl_ghcdn" ;; *) [ -n "$res" ] && mburl_tmp="$res" ;; esac if [ -n "$mburl_tmp" ]; then @@ -286,7 +289,7 @@ menulist() { checkuci $name && continue fi - appver="$(cat $mbtmp/applist.txt | grep "^$name|" | cut -d'|' -f4)" + appver="$(cat $mbtmp/applist.txt &> /dev/null | grep "^$name|" | cut -d'|' -f4)" echo $name >> ${mbtmp}/applist_menu.txt let i=$i+1 args="\t" diff --git a/apps/mixbox/config/mixbox.uci b/apps/mixbox/config/mixbox.uci index aac6e15..3f56451 100644 --- a/apps/mixbox/config/mixbox.uci +++ b/apps/mixbox/config/mixbox.uci @@ -3,5 +3,5 @@ appname="mixbox" needver="" supports="linux_aarch64,linux_arm,linux_mips,linux_x86_64" appinfo="一款支持多平台,多架构的Shell工具箱" -newinfo="修复插件列表为空的bug" -version="0.1.9.11" +newinfo="新增下载源ghcdn" +version="0.1.9.12" diff --git a/apps/shadowsocks/config/shadowsocks.uci b/apps/shadowsocks/config/shadowsocks.uci index 93e03b1..a3c1eea 100644 --- a/apps/shadowsocks/config/shadowsocks.uci +++ b/apps/shadowsocks/config/shadowsocks.uci @@ -5,5 +5,5 @@ supports="linux_aarch64,linux_arm,linux_mips,linux_x86_64" openport="1" backupfiles="config/ssserver.conf,config/sscontrol.conf,config/customize_black.conf,config/customize_white.conf" appinfo="最好的翻墙工具,没有之一,还可以加速国内外游戏" -newinfo="更新v2ray配置生成脚本" -version="0.1.10" +newinfo="现在更新v2ray会测试二进制程序,防止软件源失效更新到错误的程序" +version="0.1.11" diff --git a/apps/shadowsocks/scripts/shadowsocks.sh b/apps/shadowsocks/scripts/shadowsocks.sh index 53cec69..0bdc2b8 100644 --- a/apps/shadowsocks/scripts/shadowsocks.sh +++ b/apps/shadowsocks/scripts/shadowsocks.sh @@ -19,10 +19,16 @@ get_v2ray_bin() { logsh "【$service】" "检测v2ray版本,本地版本:$result2,在线版本:$result1" if [ "$result1" != "$result2" ]; then logsh "【$service】" "版本不一致,正在更新..." - wgetsh ${mbroot}/apps/${appname}/bin/v2ray $mburl/appsbin/v2ray-bin/$model/v2ray - wgetsh ${mbroot}/apps/${appname}/bin/v2ctl $mburl/appsbin/v2ray-bin/$model/v2ctl - chmod +x ${mbroot}/apps/${appname}/bin/v2ray - chmod +x ${mbroot}/apps/${appname}/bin/v2ctl + wgetsh ${mbtmp}/v2ray $mburl/appsbin/v2ray-bin/$model/v2ray + wgetsh ${mbtmp}/v2ctl $mburl/appsbin/v2ray-bin/$model/v2ctl + chmod +x ${mbtmp}/v2ray + chmod +x ${mbtmp}/v2ctl + if ${mbtmp}/v2ray -version &> /dev/null; then + mv -f ${mbtmp}/v2ray ${mbroot}/apps/${appname}/bin/v2ray + mv -f ${mbtmp}/v2ctl ${mbroot}/apps/${appname}/bin/v2ctl + else + echo "测试v2ray程序失败!跳过更新..." + fi fi fi } diff --git a/install_ghcdn.sh b/install_ghcdn.sh new file mode 100644 index 0000000..29c80a8 --- /dev/null +++ b/install_ghcdn.sh @@ -0,0 +1,97 @@ +#!/bin/sh -e +#copyright by monlor + +clear +logsh() { + # 输出信息到/tmp/messages和标准输出 + logger -s -p 1 -t "$1" "$2" + return 0 + +} +echo "***********************************************" +echo "** **" +echo "** Welcome to MIXBOX ! **" +echo "** **" +echo "***********************************************" +logsh "【Tools】" "请按任意键安装工具箱(Ctrl + C 退出)." +read answer +#check root +# [ "$USER" != "root" ] && logsh "【Tools】" "请使用root用户安装工具箱!" && exit 1 +mburl="https://cdn.jsdelivr.net/gh/monlor/mbfiles" +mbtmp="/tmp/mbtmp" +[ ! -d "${mbtmp}" ] && mkdir -p ${mbtmp} +model=$(uname -ms | tr ' ' '_' | tr '[A-Z]' '[a-z]') +[ -n "$(echo $model | grep -E "linux.*aarch64.*")" ] && model="linux_aarch64" +[ -n "$(echo $model | grep -E "linux.*arm.*")" ] && model="linux_arm" +[ -n "$(echo $model | grep -E "linux.*mips.*")" ] && model="linux_mips" +[ -n "$(echo $model | grep -E "linux.*x86_64.*")" ] && model="linux_x86_64" +echo "请在以下路径中选择一个合适的工具箱安装位置和一个用户文件目录:" +echo "小米路由器硬盘版推荐 工具箱安装位置:/etc,用户目录:/userdisk/data" +echo "小米路由器普通版推荐 工具箱安装位置:/etc,用户目录:/extdisks/sda*" +echo "如果未插入u盘,用户目录可与工具箱安装位置相同!" +df -h | sed 1d | awk '{print NR"."$6}' +read -p "请输入你的工具箱安装路径[可手动输入路径]:" mbroot +read -p "请输入你的用户文件目录[可手动输入路径]:" mbdisk +if [ -n "$(echo "$mbroot" | grep -E "^[0-9][0-9]*$")" ]; then + mbroot="$(df -h | sed 1d | awk '{print $6}' | sed -n "$mbroot"p)/mixbox" +else + mbroot=${mbroot}/mixbox +fi +if [ -n "$(echo "$mbdisk" | grep -E "^[0-9][0-9]*$")" ]; then + mbdisk="$(df -h | sed 1d | awk '{print $6}' | sed -n "$mbdisk"p)" +fi + +if [ -d "${mbroot}" -o -d /etc/mixbox -o -L /etc/mixbox ]; then + read -p "工具箱已安装,清除并继续?[1/0] " res + [ "$res" = '1' ] && rm -rf /etc/mixbox || exit 1 +fi + +logsh "【Tools】" "下载工具箱文件..." +rm -rf ${mbtmp}/mixbox.tar.gz > /dev/null 2>&1 +if command -v curl &> /dev/null; then + result=$(curl -w %{http_code} -skLo ${mbtmp}/mixbox.tar.gz ${mburl}/appstore/mixbox_${model}.tar.gz) +else + wget-ssl -q --no-check-certificate --tries=1 --timeout=10 -O ${mbtmp}/mixbox.tar.gz ${mburl}/appstore/mixbox_${model}.tar.gz + [ $? -eq 0 ] && result="200" +fi +[ "$result" != "200" ] && logsh "【Tools】" "文件下载失败!" && exit 1 +logsh "【Tools】" "解压工具箱文件" +tar -zxvf ${mbtmp}/mixbox.tar.gz -C ${mbtmp} > /dev/null +[ $? -ne 0 ] && logsh "【Tools】" "文件解压失败!" && exit 1 +# 安装工具箱文件 +cp -rf ${mbtmp}/mixbox ${mbroot} +chmod -R +x ${mbroot}/* +[ "${mbroot}" != "/etc/mixbox" ] && ln -s ${mbroot} /etc/mixbox + +## for ubuntu +if uname -v | grep "Ubuntu" &> /dev/null; then + logsh "【Tools】" "正在切换默认Shell为bash,请输入no!" + dpkg-reconfigure dash +fi + +logsh "【Tools】" "初始化工具箱配置信息..." +mkdir ${mbroot}/mbdb +mkdir ${mbroot}/var +mkdir ${mbroot}/var/log +mkdir ${mbroot}/var/run +touch ${mbroot}/config/applist.txt #初始化插件列表 +cat ${mbroot}/config/mixbox.uci| while read line; do + [ -z "$line" ] && continue + ucikey="$(echo $line | cut -d'=' -f1)" + ucivalue="$(echo $line | cut -d'=' -f2 | sed -e 's/\"//g')" + ${mbroot}/bin/mbdb set mixbox.main."$ucikey"="$ucivalue" +done +${mbroot}/bin/mbdb set mixbox.main.mbdisk="${mbdisk}" +${mbroot}/bin/mbdb set mixbox.main.path="${mbroot}" +${mbroot}/bin/mbdb set mixbox.main.url="${mburl}" +${mbroot}/bin/mbdb set mixbox.main.model="${model}" + +logsh "【Tools】" "执行工具箱初始化脚本..." +kill -9 $(echo $(ps | grep mixbox/| grep -v grep | awk '{print$1}')) > /dev/null 2>&1 +${mbroot}/scripts/init.sh +rm -rf ${mbtmp}/mixbox.tar.gz +rm -rf ${mbtmp}/mixbox +logsh "【Tools】" "工具箱安装完成!" + +logsh "【Tools】" "运行mixbox命令即可配置工具箱" +rm -rf ${mbtmp}/install.sh