Update install_en.sh

This commit is contained in:
黑歌-共穷国际大中华区CFO 2022-12-10 18:05:10 +08:00 committed by GitHub
parent 12bd7dd394
commit 0e74c2718e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -31,15 +31,15 @@ pre_check() {
## os_arch ## os_arch
if [[ $(uname -m | grep 'x86_64') != "" ]]; then if [[ $(uname -m | grep 'x86_64') != "" ]]; then
os_arch="amd64" os_arch="amd64"
elif [[ $(uname -m | grep 'i386\|i686') != "" ]]; then elif [[ $(uname -m | grep 'i386\|i686') != "" ]]; then
os_arch="386" os_arch="386"
elif [[ $(uname -m | grep 'aarch64\|armv8b\|armv8l') != "" ]]; then elif [[ $(uname -m | grep 'aarch64\|armv8b\|armv8l') != "" ]]; then
os_arch="arm64" os_arch="arm64"
elif [[ $(uname -m | grep 'arm') != "" ]]; then elif [[ $(uname -m | grep 'arm') != "" ]]; then
os_arch="arm" os_arch="arm"
elif [[ $(uname -m | grep 's390x') != "" ]]; then elif [[ $(uname -m | grep 's390x') != "" ]]; then
os_arch="s390x" os_arch="s390x"
elif [[ $(uname -m | grep 'riscv64') != "" ]]; then elif [[ $(uname -m | grep 'riscv64') != "" ]]; then
os_arch="riscv64" os_arch="riscv64"
fi fi
@ -92,15 +92,15 @@ before_show_menu() {
install_base() { install_base() {
(command -v git >/dev/null 2>&1 && command -v curl >/dev/null 2>&1 && command -v wget >/dev/null 2>&1 && command -v unzip >/dev/null 2>&1 && command -v getenforce >/dev/null 2>&1) || (command -v git >/dev/null 2>&1 && command -v curl >/dev/null 2>&1 && command -v wget >/dev/null 2>&1 && command -v unzip >/dev/null 2>&1 && command -v getenforce >/dev/null 2>&1) ||
(install_soft curl wget git unzip) (install_soft curl wget git unzip)
} }
install_soft() { install_soft() {
(command -v yum >/dev/null 2>&1 && yum makecache && yum install $* selinux-policy -y) || (command -v yum >/dev/null 2>&1 && yum makecache && yum install $* selinux-policy -y) ||
(command -v apt >/dev/null 2>&1 && apt update && apt install $* selinux-utils -y) || (command -v apt >/dev/null 2>&1 && apt update && apt install $* selinux-utils -y) ||
(command -v pacman >/dev/null 2>&1 && pacman -Syu $* yay --noconfirm) && echo -e "${red}Tips: ${plain} When the input box appears, please enter nezha and press Enter ${red}!!!three times in total!!!${plain}\n" && useradd -m nezha && passwd nezha && [[ $(egrep "^[^#]*nezha.*ALL)" /etc/sudoers) ]] || sed -i "$ a\nezha ALL=(ALL) ALL" /etc/sudoers && (command -v yay >/dev/null 2>&1 && sudo -iu nezha yay -S libselinux --noconfirm) && pkill -u nezha && userdel nezha && echo -e "${red}Tips: ${plain}User nezha has been deleted\n"|| (command -v pacman >/dev/null 2>&1 && pacman -Syu $* yay --noconfirm) && echo -e "${red}Tips: ${plain} When the input box appears, please enter nezha and press Enter ${red}!!!three times in total!!!${plain}\n" && useradd -m nezha && passwd nezha && [[ $(egrep "^[^#]*nezha.*ALL)" /etc/sudoers) ]] || sed -i "$ a\nezha ALL=(ALL) ALL" /etc/sudoers && (command -v yay >/dev/null 2>&1 && sudo -iu nezha yay -S libselinux --noconfirm) && pkill -u nezha && userdel nezha && echo -e "${red}Tips: ${plain}User nezha has been deleted\n"||
(command -v apt-get >/dev/null 2>&1 && apt-get update && apt-get install $* selinux-utils -y) || (command -v apt-get >/dev/null 2>&1 && apt-get update && apt-get install $* selinux-utils -y) ||
(command -v apk >/dev/null 2>&1 && apk update && apk add $* -f) (command -v apk >/dev/null 2>&1 && apk update && apk add $* -f)
} }
install_dashboard() { install_dashboard() {
@ -115,16 +115,16 @@ install_dashboard() {
echo "You may have already installed the dashboard, repeated installation will overwrite the data, please pay attention to backup." echo "You may have already installed the dashboard, repeated installation will overwrite the data, please pay attention to backup."
read -e -r -p "Exit the installation? [Y/n] " input read -e -r -p "Exit the installation? [Y/n] " input
case $input in case $input in
[yY][eE][sS] | [yY]) [yY][eE][sS] | [yY])
echo "Exit the installation." echo "Exit the installation."
exit 0 exit 0
;; ;;
[nN][oO] | [nN]) [nN][oO] | [nN])
echo "Continue." echo "Continue."
;; ;;
*) *)
echo "Exit the installation." echo "Exit the installation."
exit 0 exit 0
;; ;;
esac esac
fi fi
@ -153,13 +153,13 @@ install_dashboard() {
selinux(){ selinux(){
#Check SELinux #Check SELinux
if [ "$os_alpine" != 1 ];then if [ "$os_alpine" != 1 ];then
getenforce | grep '[Ee]nfor' getenforce | grep '[Ee]nfor'
if [ $? -eq 0 ];then if [ $? -eq 0 ];then
echo -e "SELinux runningclosing now" echo -e "SELinux runningclosing now"
setenforce 0 &>/dev/null setenforce 0 &>/dev/null
find_key="SELINUX=" find_key="SELINUX="
sed -ri "/^$find_key/c${find_key}disabled" /etc/selinux/config sed -ri "/^$find_key/c${find_key}disabled" /etc/selinux/config
fi fi
fi fi
} }
@ -198,8 +198,8 @@ install_agent() {
fi fi
unzip -qo nezha-agent_linux_${os_arch}.zip && unzip -qo nezha-agent_linux_${os_arch}.zip &&
mv nezha-agent $NZ_AGENT_PATH && mv nezha-agent $NZ_AGENT_PATH &&
rm -rf nezha-agent_linux_${os_arch}.zip README.md rm -rf nezha-agent_linux_${os_arch}.zip README.md
if [ $# -ge 3 ]; then if [ $# -ge 3 ]; then
modify_agent_config "$@" modify_agent_config "$@"
@ -216,18 +216,18 @@ modify_agent_config() {
echo -e "> Modify Agent Configuration" echo -e "> Modify Agent Configuration"
if [ "$os_alpine" != 1 ];then if [ "$os_alpine" != 1 ];then
wget -t 2 -T 10 -O $NZ_AGENT_SERVICE https://${GITHUB_RAW_URL}/script/nezha-agent.service >/dev/null 2>&1 wget -t 2 -T 10 -O $NZ_AGENT_SERVICE https://${GITHUB_RAW_URL}/script/nezha-agent.service >/dev/null 2>&1
if [[ $? != 0 ]]; then if [[ $? != 0 ]]; then
echo -e "${red}Fail to download service, please check if the network can link ${GITHUB_RAW_URL}${plain}" echo -e "${red}Fail to download service, please check if the network can link ${GITHUB_RAW_URL}${plain}"
return 0 return 0
fi fi
fi fi
if [ $# -lt 3 ]; then if [ $# -lt 3 ]; then
echo "Please add Agent in the admin panel first, record the secret" && echo "Please add Agent in the admin panel first, record the secret" &&
read -ep "Please enter a domain that resolves to the IP where the panel is located (no CDN sets): " nz_grpc_host && read -ep "Please enter a domain that resolves to the IP where the panel is located (no CDN sets): " nz_grpc_host &&
read -ep "Please enter the panel RPC port: (5555)" nz_grpc_port && read -ep "Please enter the panel RPC port: (5555)" nz_grpc_port &&
read -ep "Please enter the Agent secret: " nz_client_secret read -ep "Please enter the Agent secret: " nz_client_secret
if [[ -z "${nz_grpc_host}" || -z "${nz_client_secret}" ]]; then if [[ -z "${nz_grpc_host}" || -z "${nz_client_secret}" ]]; then
echo -e "${red}All options cannot be empty${plain}" echo -e "${red}All options cannot be empty${plain}"
before_show_menu before_show_menu
@ -243,28 +243,28 @@ modify_agent_config() {
fi fi
if [ "$os_alpine" != 1 ];then if [ "$os_alpine" != 1 ];then
sed -i "s/nz_grpc_host/${nz_grpc_host}/" ${NZ_AGENT_SERVICE} sed -i "s/nz_grpc_host/${nz_grpc_host}/" ${NZ_AGENT_SERVICE}
sed -i "s/nz_grpc_port/${nz_grpc_port}/" ${NZ_AGENT_SERVICE} sed -i "s/nz_grpc_port/${nz_grpc_port}/" ${NZ_AGENT_SERVICE}
sed -i "s/nz_client_secret/${nz_client_secret}/" ${NZ_AGENT_SERVICE} sed -i "s/nz_client_secret/${nz_client_secret}/" ${NZ_AGENT_SERVICE}
shift 3 shift 3
if [ $# -gt 0 ]; then if [ $# -gt 0 ]; then
args=" $*" args=" $*"
sed -i "/ExecStart/ s/$/${args}/" ${NZ_AGENT_SERVICE} sed -i "/ExecStart/ s/$/${args}/" ${NZ_AGENT_SERVICE}
fi fi
else else
echo "@reboot nohup ${NZ_AGENT_PATH}/nezha-agent -s ${nz_grpc_host}:${nz_grpc_port} -p ${nz_client_secret} >/dev/null 2>&1 &" >> /etc/crontabs/root echo "@reboot nohup ${NZ_AGENT_PATH}/nezha-agent -s ${nz_grpc_host}:${nz_grpc_port} -p ${nz_client_secret} >/dev/null 2>&1 &" >> /etc/crontabs/root
crond crond
fi fi
echo -e "Agent configuration ${green} modified successfully, please wait for agent self-restart to take effect${plain}" echo -e "Agent configuration ${green} modified successfully, please wait for agent self-restart to take effect${plain}"
if [ "$os_alpine" != 1 ];then if [ "$os_alpine" != 1 ];then
systemctl daemon-reload systemctl daemon-reload
systemctl enable nezha-agent systemctl enable nezha-agent
systemctl restart nezha-agent systemctl restart nezha-agent
else else
nohup ${NZ_AGENT_PATH}/nezha-agent -s ${nz_grpc_host}:${nz_grpc_port} -p ${nz_client_secret} >/dev/null 2>&1 & nohup ${NZ_AGENT_PATH}/nezha-agent -s ${nz_grpc_host}:${nz_grpc_port} -p ${nz_client_secret} >/dev/null 2>&1 &
fi fi
if [[ $# == 0 ]]; then if [[ $# == 0 ]]; then
@ -289,14 +289,14 @@ modify_dashboard_config() {
fi fi
echo "About the GitHub Oauth2 application: create it at https://github.com/settings/developers, no review required, and fill in the http(s)://domain_or_IP/oauth2/callback" && echo "About the GitHub Oauth2 application: create it at https://github.com/settings/developers, no review required, and fill in the http(s)://domain_or_IP/oauth2/callback" &&
echo "(Not recommended) About the Gitee Oauth2 application: create it at https://gitee.com/oauth/applications, no auditing required, and fill in the http(s)://domain_or_IP/oauth2/callback" && echo "(Not recommended) About the Gitee Oauth2 application: create it at https://gitee.com/oauth/applications, no auditing required, and fill in the http(s)://domain_or_IP/oauth2/callback" &&
read -ep "Please enter the OAuth2 provider (github/gitlab/jihulab/gitee, default github): " nz_oauth2_type && read -ep "Please enter the OAuth2 provider (github/gitlab/jihulab/gitee, default github): " nz_oauth2_type &&
read -ep "Please enter the Client ID of the Oauth2 application: " nz_github_oauth_client_id && read -ep "Please enter the Client ID of the Oauth2 application: " nz_github_oauth_client_id &&
read -ep "Please enter the Client Secret of the Oauth2 application: " nz_github_oauth_client_secret && read -ep "Please enter the Client Secret of the Oauth2 application: " nz_github_oauth_client_secret &&
read -ep "Please enter your GitHub/Gitee login name as the administrator, separated by commas: " nz_admin_logins && read -ep "Please enter your GitHub/Gitee login name as the administrator, separated by commas: " nz_admin_logins &&
read -ep "Please enter the site title: " nz_site_title && read -ep "Please enter the site title: " nz_site_title &&
read -ep "Please enter the site access port: (default 8008)" nz_site_port && read -ep "Please enter the site access port: (default 8008)" nz_site_port &&
read -ep "Please enter the RPC port to be used for Agent access: (default 5555)" nz_grpc_port read -ep "Please enter the RPC port to be used for Agent access: (default 5555)" nz_grpc_port
if [[ -z "${nz_admin_logins}" || -z "${nz_github_oauth_client_id}" || -z "${nz_github_oauth_client_secret}" || -z "${nz_site_title}" ]]; then if [[ -z "${nz_admin_logins}" || -z "${nz_github_oauth_client_id}" || -z "${nz_github_oauth_client_secret}" || -z "${nz_site_title}" ]]; then
echo -e "${red}All options cannot be empty${plain}" echo -e "${red}All options cannot be empty${plain}"
@ -456,13 +456,13 @@ uninstall_agent() {
echo -e "> Uninstall Agent" echo -e "> Uninstall Agent"
if [ "$os_alpine" != 1 ];then if [ "$os_alpine" != 1 ];then
systemctl disable nezha-agent.service systemctl disable nezha-agent.service
systemctl stop nezha-agent.service systemctl stop nezha-agent.service
rm -rf $NZ_AGENT_SERVICE rm -rf $NZ_AGENT_SERVICE
systemctl daemon-reload systemctl daemon-reload
else else
sed -i "/nezha-agent/d" /etc/crontabs/root sed -i "/nezha-agent/d" /etc/crontabs/root
pkill nezha pkill nezha
fi fi
rm -rf $NZ_AGENT_PATH rm -rf $NZ_AGENT_PATH
@ -535,50 +535,50 @@ show_menu() {
echo && read -ep "Please enter [0-13]: " num echo && read -ep "Please enter [0-13]: " num
case "${num}" in case "${num}" in
0) 0)
exit 0 exit 0
;; ;;
1) 1)
install_dashboard install_dashboard
;; ;;
2) 2)
modify_dashboard_config modify_dashboard_config
;; ;;
3) 3)
start_dashboard start_dashboard
;; ;;
4) 4)
stop_dashboard stop_dashboard
;; ;;
5) 5)
restart_and_update restart_and_update
;; ;;
6) 6)
show_dashboard_log show_dashboard_log
;; ;;
7) 7)
uninstall_dashboard uninstall_dashboard
;; ;;
8) 8)
install_agent install_agent
;; ;;
9) 9)
modify_agent_config modify_agent_config
;; ;;
10) 10)
show_agent_log show_agent_log
;; ;;
11) 11)
uninstall_agent uninstall_agent
;; ;;
12) 12)
restart_agent restart_agent
;; ;;
13) 13)
update_script update_script
;; ;;
*) *)
echo -e "${red}Please enter the correct number [0-13]${plain}" echo -e "${red}Please enter the correct number [0-13]${plain}"
;; ;;
esac esac
} }
@ -587,51 +587,51 @@ pre_check
if [[ $# > 0 ]]; then if [[ $# > 0 ]]; then
case $1 in case $1 in
"install_dashboard") "install_dashboard")
install_dashboard 0 install_dashboard 0
;; ;;
"modify_dashboard_config") "modify_dashboard_config")
modify_dashboard_config 0 modify_dashboard_config 0
;; ;;
"start_dashboard") "start_dashboard")
start_dashboard 0 start_dashboard 0
;; ;;
"stop_dashboard") "stop_dashboard")
stop_dashboard 0 stop_dashboard 0
;; ;;
"restart_and_update") "restart_and_update")
restart_and_update 0 restart_and_update 0
;; ;;
"show_dashboard_log") "show_dashboard_log")
show_dashboard_log 0 show_dashboard_log 0
;; ;;
"uninstall_dashboard") "uninstall_dashboard")
uninstall_dashboard 0 uninstall_dashboard 0
;; ;;
"install_agent") "install_agent")
shift shift
if [ $# -ge 3 ]; then if [ $# -ge 3 ]; then
install_agent "$@" install_agent "$@"
else else
install_agent 0 install_agent 0
fi fi
;; ;;
"modify_agent_config") "modify_agent_config")
modify_agent_config 0 modify_agent_config 0
;; ;;
"show_agent_log") "show_agent_log")
show_agent_log 0 show_agent_log 0
;; ;;
"uninstall_agent") "uninstall_agent")
uninstall_agent 0 uninstall_agent 0
;; ;;
"restart_agent") "restart_agent")
restart_agent 0 restart_agent 0
;; ;;
"update_script") "update_script")
update_script 0 update_script 0
;; ;;
*) show_usage ;; *) show_usage ;;
esac esac
else else
show_menu show_menu