diff --git a/Back.sh b/Back.sh new file mode 100644 index 0000000..f2bda58 --- /dev/null +++ b/Back.sh @@ -0,0 +1,149 @@ +#!/bin/bash +export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" + +RED="\033[31m" +GREEN="\033[32m" +YELLOW="\033[33m" +BLUE="\033[36m" +BLANK="\033[0m" + +colorEcho() { + COLOR=$1 + shift # delete first parameter + echo -e "${COLOR}${@}${BLANK}" + echo +} + +colorRead() { + COLOR=$1 + OUTPUT=$2 + VARIABLE=$3 + echo -e -n "$COLOR$OUTPUT${BLANK}: " + read $VARIABLE /dev/null 2>&1; then + # check if auto install + if command apt >/dev/null 2>&1; then + # apt install package need update first + if [ "update_flag" = "0" ]; then + apt update >/dev/null 2>&1 + update_flag=1 + fi + + package=$(dpkg -S bin/$cmd 2>&1 | grep "bin/$cmd$" | awk -F':' '{print $1}') + if [ ! -z "$package" ]; then + colorEcho $BLUE "正在安装 $cmd ..." + apt install $package -y >/dev/null 2>&1 + continue + fi + elif command yum >/dev/null 2>&1; then + package=$(yum whatprovides *bin/$cmd 2>&1 | grep " : " | awk -F' : ' '{print $1}' | sed -n '1p') + if [ ! -z "$package" ]; then + colorEcho $BLUE "正在安装 $cmd ..." + yum install $package -y >/dev/null 2>&1 + continue + fi + fi + + colorEcho $RED "找不到 $cmd 命令" + exit_flag=1 + fi + done + + if [ "$exit_flag" = "1" ]; then + exit 1 + fi +} + +install_zip() { + key="$1" + if [ -d "/usr" -a ! -z "$(command -v apt-get yum)" ]; then + wp="/usr/local/$key" + else + colorRead $YELLOW "请输入安装目录,默认:/usr/local,不能是/bin " wp + wp="/usr/local" + [ -z "$wp" ] && exit 1 + wp=$(echo "$wp/$key" | sed 's|///*|/|g') # 连续的 / 变为一个 + fi + zip="$key.zip" + if [ -d "$wp" ]; then + colorEcho $YELLOW "正在卸载 $key..." + sh $wp/uninstall.sh >/dev/null 2>&1 + fi + colorEcho $YELLOW "正在安装 $key 到 $wp ..." + curl --insecure -OL https://www.gitlink.org.cn/dongge88/builds/releases/download/builds/$zip + rm -rf $wp + mkdir -p $wp + unzip -q -o $zip -d $wp + rm -f $zip + sed -i "s|wp=.*|wp=\"$wp\"|g" $wp/*.sh # 修改路径 + chmod -R 777 $wp + sh $wp/install.sh +} + +check_environment() { + if [ "${EUID:-$(id -u)}" != "0" ]; then + colorEcho $RED "请切换到root用户后再执行此脚本!" + exit 1 + fi + + #if [ "$(uname -r | awk -F '.' '{print $1}')" -lt "3" ]; then + #colorEcho $RED "内核太老,请升级内核或更新系统!" + #exit 1 + #fi +} + +jzdh_add() { + JZDH_ZIP="$JZDH_ZIP$1 $2\n" +} + +panel() { + clear + + check_environment + cmd_need 'iptables unzip netstat curl' + + jzdh_add "v2ray" "v2ray" + #jzdh_add "ssr_jzdh" "ssr_jzdh" + #jzdh_add "BBR" "BBR" + #jzdh_add "AriaNG" "AriaNG" + jzdh_add "xray" "xray" + #jzdh_add "swap 分区" "swapfile" + #jzdh_add "openvpn" "openvpn" + jzdh_add "Dcns" "Dcns" + jzdh_add "Damy" "Damy" + #jzdh_add "wireguard" "wireguard" + #jzdh_add "tinyvpn-udp2raw" "tinyvpn" + #jzdh_add "smartdns" "smartdns" + #jzdh_add "tun2socks-v2ray 透明代理" "tun2socks" + #jzdh_add "v2ray 透明代理(TPROXY + REDIRECT)" "v2rayT" + jzdh_add "ygk" "ygk" + #jzdh_add "l_ygk(linux 客户端)" "l_ygk" + jzdh_add "stn" "stn" + + colorEcho $BLUE "欢迎使用 JZDH 集合脚本" + var=1 + echo -e "$JZDH_ZIP" | grep -Ev '^$' | while read zip; do + zip_path="$(echo "$zip" | awk '{print $NF}')" + zip_name="$(echo "$zip" | awk '{$NF=""; print $0}')" + if [ -d "/usr/local/$zip_path" ]; then + printf "%3s. 安装 ${GREEN}$zip_name${BLANK}\n" "$((var++))" + else + printf "%3s. 安装 $zip_name\n" "$((var++))" + fi + done + echo && colorRead ${YELLOW} '请选择' panel_choice + [ -z "$panel_choice" ] && clear && exit 0 + for J in $panel_choice; do + install_zip $(echo -e "$JZDH_ZIP" | sed -n "${J}p" | awk '{print $NF}') + done +} + +panel