From c08a2965abbf59b271dab74ddc671ff5988b79be Mon Sep 17 00:00:00 2001 From: Mr Chen Date: Fri, 1 Nov 2024 16:54:42 +0800 Subject: [PATCH] Create update_new.sh --- scripts/update_new.sh | 134 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100755 scripts/update_new.sh diff --git a/scripts/update_new.sh b/scripts/update_new.sh new file mode 100755 index 000000000..1f8caa7aa --- /dev/null +++ b/scripts/update_new.sh @@ -0,0 +1,134 @@ +#!/bin/bash +PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin:/opt/homebrew/bin +export PATH +# LANG=en_US.UTF-8 +is64bit=`getconf LONG_BIT` + +startTime=`date +%s` + +if [ -f /www/server/mdserver-web/tools.py ];then + echo -e "存在旧版代码,不能安装!,已知风险的情况下" + echo -e "rm -rf /www/server/mdserver-web" + echo -e "可安装!" + exit 0 +fi + +_os=`uname` +echo "use system: ${_os}" + +if [ "$EUID" -ne 0 ] + then echo "Please run as root!" + exit +fi + +if [ ${_os} != "Darwin" ] && [ ! -d /www/server/mdserver-web/logs ]; then + mkdir -p /www/server/mdserver-web/logs +fi + +LOG_FILE=/var/log/mw-update.log + +{ + +if [ ${_os} == "Darwin" ]; then + OSNAME='macos' +elif grep -Eqi "openSUSE" /etc/*-release; then + OSNAME='opensuse' + zypper refresh +elif grep -Eqi "EulerOS" /etc/*-release || grep -Eqi "openEuler" /etc/*-release; then + OSNAME='euler' +elif grep -Eqi "FreeBSD" /etc/*-release; then + OSNAME='freebsd' +elif grep -Eqi "CentOS" /etc/issue || grep -Eqi "CentOS" /etc/*-release; then + OSNAME='centos' + yum install -y wget zip unzip +elif grep -Eqi "Fedora" /etc/issue || grep -Eqi "Fedora" /etc/*-release; then + OSNAME='rhel' + yum install -y wget zip unzip +elif grep -Eqi "Rocky" /etc/issue || grep -Eqi "Rocky" /etc/*-release; then + OSNAME='rhel' + yum install -y wget zip unzip +elif grep -Eqi "AlmaLinux" /etc/issue || grep -Eqi "AlmaLinux" /etc/*-release; then + OSNAME='rhel' + yum install -y wget zip unzip +elif grep -Eqi "Amazon Linux" /etc/issue || grep -Eqi "Amazon Linux" /etc/*-release; then + OSNAME='amazon' + yum install -y wget zip unzip +elif grep -Eqi "Debian" /etc/issue || grep -Eqi "Debian" /etc/*-release; then + OSNAME='debian' + apt install -y wget zip unzip +elif grep -Eqi "Ubuntu" /etc/issue || grep -Eqi "Ubuntu" /etc/*-release; then + OSNAME='ubuntu' + apt install -y wget zip unzip +elif grep -Eqi "Raspbian" /etc/issue || grep -Eqi "Raspbian" /etc/*-release; then + OSNAME='raspbian' +else + OSNAME='unknow' +fi + +# HTTP_PREFIX="https://" +# LOCAL_ADDR=common +# ping -c 1 github.com > /dev/null 2>&1 +# if [ "$?" != "0" ];then +# LOCAL_ADDR=cn +# HTTP_PREFIX="https://mirror.ghproxy.com/" +# fi +HTTP_PREFIX="https://" +LOCAL_ADDR=common +cn=$(curl -fsSL -m 10 -s http://ipinfo.io/json | grep "\"country\": \"CN\"") +if [ ! -z "$cn" ] || [ "$?" == "0" ] ;then + LOCAL_ADDR=cn + HTTP_PREFIX="https://mirror.ghproxy.com/" +fi + +echo "local:${LOCAL_ADDR}" + +CP_CMD=/usr/bin/cp +if [ -f /bin/cp ];then + CP_CMD=/bin/cp +fi + +echo "update mdserver-web code start" + +if [ "$LOCAL_ADDR" != "common" ];then + wget --no-check-certificate -O /tmp/dev.zip https://code.midoks.icu/midoks/mdserver-web/archive/dev.zip + # curl --insecure -sSLo /tmp/dev.zip https://code.midoks.icu/midoks/mdserver-web/archive/dev.zip + cd /tmp && unzip /tmp/dev.zip + + $CP_CMD -rf /tmp/mdserver-web/* /www/server/mdserver-web + rm -rf /tmp/master.zip + rm -rf /tmp/mdserver-web +else + curl --insecure -sSLo /tmp/dev.zip ${HTTP_PREFIX}github.com/midoks/mdserver-web/archive/refs/heads/dev.zip + cd /tmp && unzip /tmp/dev.zip + $CP_CMD -rf /tmp/mdserver-web-dev/* /www/server/mdserver-web + rm -rf /tmp/dev.zip + rm -rf /tmp/mdserver-web-dev +fi + +echo "update mdserver-web code end" + +rm -rf /tmp/dev.zip +rm -rf /tmp/mdserver-web-dev + +#pip uninstall public +echo "use system version: ${OSNAME}" +cd /www/server/mdserver-web && bash scripts/update/${OSNAME}.sh + +bash /etc/rc.d/init.d/mw restart +bash /etc/rc.d/init.d/mw default + +if [ -f /usr/bin/mw ];then + rm -rf /usr/bin/mw +fi + +if [ ! -e /usr/bin/mw ]; then + if [ ! -f /usr/bin/mw ];then + ln -s /etc/rc.d/init.d/mw /usr/bin/mw + fi +fi + +endTime=`date +%s` +((outTime=($endTime-$startTime)/60)) +echo -e "Time consumed:\033[32m $outTime \033[0mMinute!" + +} 1> >(tee $LOG_FILE) 2>&1 \ No newline at end of file