1 Star 0 Fork 25

胡一刀/doubi

forked from wbq/doubi 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
gogo.sh 7.68 KB
一键复制 编辑 原始数据 按行查看 历史
#!/usr/bin/env bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/java/jre/bin:~/bin
export PATH
#=================================================
# System Required: CentOS/Debian/Ubuntu
# Description: GoGo Server
# Version: 1.0.0
# Author: Toyo
# Blog: https://doub.io/wlzy-24/
#=================================================
gogo_directory="/etc/gogoserver"
gogo_file="/etc/gogoserver/gogo-server.jar"
java_directory="/usr/java"
java_file="/usr/java/jre"
profile_file="/etc/profile"
httpsport="8443"
#检查是否安装gogo
check_gogo(){
[[ ! -e ${gogo_file} ]] && echo -e "\033[41;37m [错误] \033[0m 没有安装GoGo,请检查 !" && exit 1
}
#检查是否安装java
check_java(){
java_check=`java -version`
[[ -z ${java_check} ]] && echo -e "\033[41;37m [错误] \033[0m 没有安装JAVA,请检查 !" && exit 1
}
#检查系统
check_sys(){
bit=`uname -m`
}
# 安装java
installjava(){
mkdir ${java_directory}
cd ${java_directory}
check_sys
# 系统判断
if [ ${bit} == "x86_64" ]; then
wget -N -O java.tar.gz "http://javadl.oracle.com/webapps/download/AutoDL?BundleId=216424"
elif [ ${bit} == "i386" ]; then
wget -N -O java.tar.gz "http://javadl.oracle.com/webapps/download/AutoDL?BundleId=216422"
else
echo -e "\033[41;37m [错误] \033[0m 不支持 ${bit} !" && exit 1
fi
tar zxvf java.tar.gz
jre_file=`ls -a | grep 'jre'`
mv ${jre_file} jre
rm -rf java.tar.gz
# 设置java环境变量
echo '#set java JDK
JAVA_HOME=/usr/java/jre
JRE_HOME=/usr/java/jre/jre/
PATH=$PATH:$JAVA_HOME/bin:$JRE_home/bin
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export JAVA_HOME
export JRE_HOME
export PATH
export CLASSPATH' >> ${profile_file}
source ${profile_file}
#判断java是否安装成功
#java_check=`java -version`
#[[ -z ${java_check} ]] && echo -e "\033[41;37m [错误] \033[0m 安装 JAVA 失败,请检查 !" && exit 1
}
# 安装gogo
installgogo(){
# 判断是否安装gogo
[[ -e ${gogo_file} ]] && echo -e "\033[41;37m [错误] \033[0m 已经安装 GoGo,请检查 !" && exit 1
# 判断是否安装java
#java_check=`java -version`
if [[ ! -e ${java_directory} ]]; then
echo -e "\033[42;37m [信息] \033[0m 没有检测到安装 JAVA,开始安装..."
installjava
fi
chmod +x /etc/rc.local
mkdir ${gogo_directory}
cd ${gogo_directory}
wget -N -O gogo-server.jar --no-check-certificate "https://gogohome.herokuapp.com/getLatestGoGoServer"
#判断gogo是否下载成功
if [[ ! -e ${gogo_file} ]]; then
echo -e "\033[41;37m [错误] \033[0m 下载GoGo失败,请检查 !" && exit 1
else
startgogo
fi
}
setgogo(){
#设置端口
while true
do
echo -e "请输入GoGo Server 的 HTTP监听端口 [1-65535]:"
stty erase '^H' && read -p "(默认端口: 8080):" httpport
[ -z "$httpport" ] && httpport="8080"
expr ${httpport} + 0 &>/dev/null
if [ $? -eq 0 ]; then
if [ ${httpport} -ge 1 ] && [ ${httpport} -le 65535 ]; then
echo
echo "——————————————————————————————"
echo -e " 端口 : \033[41;37m ${httpport} \033[0m"
echo "——————————————————————————————"
echo
break
else
echo "输入错误,请输入正确的数字 !"
fi
else
echo "输入错误,请输入正确的数字 !"
fi
done
}
# 查看gogo列表
viewgogo(){
# 检查是否安装
check_gogo
PID=`ps -ef | grep "gogo" | grep -v grep | grep -v "gogo.sh" | awk '{print $2}'`
[[ -z $PID ]] && echo -e "\033[42;37m [信息] \033[0m GoGo 没有运行 !" && exit 1
gogo_http_port=`ps -ef | grep "gogo" | grep -v grep | grep -v "gogo.sh" | awk '{print $12}'`
# 获取IP
ip=`curl -m 10 -s http://members.3322.org/dyndns/getip`
[[ -z $ip ]] && ip="vps_ip"
echo
echo "——————————————————————————————"
echo " GoGo Server 配置信息: "
echo
echo -e " 本地 IP : \033[41;37m ${ip} \033[0m"
echo -e " HTTP监听端口 : \033[41;37m ${gogo_http_port} \033[0m"
echo -e " HTTPS监听端口 : \033[41;37m ${httpsport} \033[0m"
echo "——————————————————————————————"
echo
}
# 启动aProxy
startgogo(){
# 检查是否安装
check_gogo
# 判断进程是否存在
PID=`ps -ef | grep "gogo" | grep -v grep | grep -v "gogo.sh" | awk '{print $2}'`
[[ ! -z $PID ]] && echo -e "\033[41;37m [错误] \033[0m 发现 GoGo 正在运行,请检查 !" && exit 1
cd ${gogo_directory}
setgogo
nohup java -Xmx300m -jar gogo-server.jar ${httpport} &>/dev/null &
sleep 2s
PID=`ps -ef | grep "gogo" | grep -v grep | grep -v "gogo.sh" | awk '{print $2}'`
[[ -z $PID ]] && echo -e "\033[41;37m [错误] \033[0m GoGo 启动失败 !" && exit 1
iptables -I INPUT -p tcp --dport ${httpport} -j ACCEPT
iptables -I INPUT -p udp --dport ${httpport} -j ACCEPT
iptables -I INPUT -p tcp --dport ${httpsport} -j ACCEPT
iptables -I INPUT -p udp --dport ${httpsport} -j ACCEPT
# 系统判断,开机启动
check_sys
if [[ ${release} == "debian" ]]; then
sed -i '$d' /etc/rc.local
echo -e "nohup java -Xmx300m -jar gogo-server.jar ${httpport} &>/dev/null &" >> /etc/rc.local
echo -e "exit 0" >> /etc/rc.local
else
echo -e "nohup java -Xmx300m -jar gogo-server.jar ${httpport} &>/dev/null &" >> /etc/rc.local
fi
clear
echo
echo "——————————————————————————————"
echo
echo " GoGo 已启动 !"
viewgogo
}
# 停止aProxy
stopgogo(){
# 检查是否安装
check_gogo
# 判断进程是否存在
PID=`ps -ef | grep "gogo" | grep -v grep | grep -v "gogo.sh" | awk '{print $2}'`
[[ -z $PID ]] && echo -e "\033[41;37m [错误] \033[0m 发现 GoGo 没有运行,请检查 !" && exit 1
gogo_http_port=`ps -ef | grep "gogo" | grep -v grep | grep -v "gogo.sh" | awk '{print $12}'`
sed -i "/nohup java -Xmx300m -jar gogo-server.jar ${gogo_http_port} &>\/dev\/null &/d" /etc/rc.local
iptables -D INPUT -p tcp --dport ${gogo_http_port} -j ACCEPT
iptables -D INPUT -p udp --dport ${gogo_http_port} -j ACCEPT
iptables -D INPUT -p tcp --dport ${httpsport} -j ACCEPT
iptables -D INPUT -p udp --dport ${httpsport} -j ACCEPT
kill -9 ${PID}
sleep 2s
PID=`ps -ef | grep "gogo" | grep -v grep | grep -v "gogo.sh" | awk '{print $2}'`
if [[ ! -z $PID ]]; then
echo -e "\033[41;37m [错误] \033[0m GoGo 停止失败 !" && exit 1
else
echo " GoGo 已停止 !"
fi
}
restartgogo(){
# 检查是否安装
check_gogo
PID=`ps -ef | grep "gogo" | grep -v grep | grep -v "gogo.sh" | awk '{print $2}'`
[[ ! -z $PID ]] && stopgogo
startgogo
}
statusgogo(){
# 检查是否安装
check_gogo
# 判断进程是否存在
PID=`ps -ef | grep "gogo" | grep -v grep | grep -v "gogo.sh" | awk '{print $2}'`
if [[ ! -z $PID ]]; then
echo -e "\033[42;37m [信息] \033[0m GoGo 正在运行,PID: ${PID} !"
else
echo -e "\033[42;37m [信息] \033[0m GoGo 没有运行 !"
fi
}
uninstallgogo(){
# 检查是否安装
check_gogo
printf "确定要卸载 GoGo ? (y/N)"
printf "\n"
stty erase '^H' && read -p "(默认: n):" unyn
[[ -z ${unyn} ]] && unyn="n"
if [[ ${unyn} == [Yy] ]]; then
PID=`ps -ef | grep "gogo" | grep -v grep | grep -v "gogo.sh" | awk '{print $2}'`
[[ ! -z $PID ]] && stopgogo
rm -rf ${gogo_directory}
sed -i "/nohup java -Xmx300m -jar gogo-server.jar ${gogo_http_port} &>\/dev\/null &/d" /etc/rc.local
[[ -e ${gogo_directory} ]] && echo -e "\033[41;37m [错误] \033[0m GoGo卸载失败,请检查 !" && exit 1
echo
echo " GoGo 已卸载 !"
echo
else
echo
echo "卸载已取消..."
echo
fi
}
action=$1
[[ -z $1 ]] && action=install
case "$action" in
install|view|start|stop|restart|status|uninstall)
${action}gogo
;;
*)
echo "输入错误 !"
echo "用法: { install | view | start | stop | restart | status | uninstall }"
;;
esac
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Shell
1
https://gitee.com/girle/doubi.git
git@gitee.com:girle/doubi.git
girle
doubi
doubi
master

搜索帮助