[ server ] [ executor ] - optimize code

This commit is contained in:
zeaslity
2022-12-27 16:02:32 +08:00
parent 9bc516bdbd
commit 37752ca07c
16 changed files with 189 additions and 166 deletions

View File

@@ -1,12 +0,0 @@
#!/bin/bash
containerId=$(docker ps | grep octopus-agent | awk '{print$1}')
docker container stop $(containerId) && docker container rm $(containerId)
echo "y
" | docker container prune
docker image rmi octopus-agent-ubuntu:latest -y

View File

@@ -3,6 +3,7 @@
##### environment variables ######
RepoSourcePath=https://raw.githubusercontent.com/zeaslity/ProjectOctopus/main/source/src/main/java/io/wdd/source/shell
OctopusAgentUrl=https://happybirthday.107421.xyz/octopus-agent/
DependLibFiles=(
wdd-lib-file.sh
wdd-lib-log.sh
@@ -199,7 +200,8 @@ DownloadAllFile() {
colorEcho $BLUE "start to download octopus agent !"
# check for latest version
# download the lasted jar
wget https://happybirthday.107421.xyz/octopus-agent/octopus-agent-2022-12-21-16-00-00.jar -O /octopus-agent/agent.jar
. ./lib/wdd-lib-os.sh
CheckAndDownloadLatestVersion
FunctionSuccess
FunctionEnd
@@ -265,24 +267,32 @@ InstallJDKPackage() {
}
systemdAgent(){
local JAVA_OPTS="-Xms128m -Xmx256m"
local JAVA_OPTS="-Xms128m -Xmx512m"
# https://www.baeldung.com/linux/run-java-application-as-service
cat >/etc/systemd/system/octopus-agent.service <<EOF
[Unit]
Description=Octopus Agent
Description=Octopus Agent Service
Documentation=https://octopus.107421.xyz/
After=network.target
After=syslog.target network.target
[Service]
SuccessExitStatus=143
PermissionsStartOnly=true
LimitNOFILE=1048576
LimitNPROC=65535
User=root
WorkingDirectory=/octopus-agent
ExecStart=java -jar /octopus-agent/agent.jar ${JAVA_OPTS}
ExecReload=source /etc/environment
Restart=on-failure
User=root
Type=simple
WorkingDirectory=/octopus-agent
ExecStart=java -jar /octopus-agent/agent.jar ${JAVA_OPTS}
ExecStop=/bin/kill -15 $MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF

View File

@@ -0,0 +1,20 @@
#!/bin/bash
. ./lib/wdd-lib-log.sh
. ./lib/wdd-lib-sys.sh
FunctionStart
log "prepare the env"
chmod +x ./lib/wdd-lib-env.sh
./lib/wdd-lib-env.sh
systemctl stop octopus-agent.service
systemctl start octopus-agent.service
FunctionSuccess
FunctionEnd

View File

@@ -0,0 +1,25 @@
#!/bin/bash
. ./lib/wdd-lib-log.sh
. ./lib/wdd-lib-sys.sh
. ./lib/wdd-lib-os.sh
RepoSourcePath=https://raw.githubusercontent.com/zeaslity/ProjectOctopus/main/source/src/main/java/io/wdd/source/shell
CheckAndDownloadLatestVersion
if [[ ! -f /octopus-agent/agent-reboot.sh ]]; then\
warn "agent-bootup.sh not exist! start to download !"
cd /octopus-agent
wget $RepoSourcePath/agent-reboot.sh
fi
log "start to reboot the octopus agent !"
chmod +x /octopus-agent/agent-reboot.sh
/octopus-agent/agent-reboot.sh

View File

@@ -263,26 +263,26 @@ else
machineNumber=99
fi
cat >>/etc/environment<<EOF
export serverName="${city}-${hostArch}-${machineNumber}"
export serverIpPbV4="$public_ipv4"
export serverIpInV4=""
export serverIpPbV6=""
export serverIpInV6=""
export location="$city $region $country"
export provider="$org"
export managePort="$(netstat -ntulp | grep sshd | grep -w tcp | awk '{print$4}' | cut -d":" -f2)"
export cpuCore="$cores @ $freq MHz"
export cpuBrand="$cpuName"
export memoryTotal="$tram"
export diskTotal="$disk_total_size"
export diskUsage="$disk_used_size"
export archInfo="$arch ($lbit Bit)"
export osInfo="$opsy"
export osKernelInfo="$kern"
export tcpControl="$tcpctrl"
export virtualization="$virt"
export ioSpeed="$ioavg MB/s"
export machineId="$(cat /etc/machine-id)"
export serverName=${city}-${hostArch}-${machineNumber}
export serverIpPbV4=$public_ipv4
export serverIpInV4=
export serverIpPbV6=
export serverIpInV6=
export location=$city $region $country
export provider=$org
export managePort=$(netstat -ntulp | grep sshd | grep -w tcp | awk '{print$4}' | cut -d":" -f2)
export cpuCore=$cores @ $freq MHz
export cpuBrand=$cpuName
export memoryTotal=$tram
export diskTotal=$disk_total_size
export diskUsage=$disk_used_size
export archInfo=$arch ($lbit Bit)
export osInfo=$opsy
export osKernelInfo=$kern
export tcpControl=$tcpctrl
export virtualization=$virt
export ioSpeed=$ioavg MB/s
export machineId=$(cat /etc/machine-id)
EOF
log "env collect complete!"

View File

@@ -1,112 +1,27 @@
#!/bin/bash
#
# Library for logging functions
# Constants
RESET='\033[0m'
RED='\033[38;5;1m'
GREEN='\033[38;5;2m'
YELLOW='\033[38;5;3m'
MAGENTA='\033[38;5;5m'
CYAN='\033[38;5;6m'
# Functions
. ./wdd-lib-log.sh
########################
# Print to STDERR
# Arguments:
# Message to print
# Returns:
# None
#########################
stderr_print() {
# 'is_boolean_yes' is defined in libvalidations.sh, but depends on this file so we cannot source it
local bool="${BITNAMI_QUIET:-false}"
# comparison is performed without regard to the case of alphabetic characters
shopt -s nocasematch
if ! [[ "$bool" = 1 || "$bool" =~ ^(yes|true)$ ]]; then
printf "%b\\n" "${*}" >&2
fi
}
OctopusAgentUrl=https://happybirthday.107421.xyz/octopus-agent/
########################
# Log message
# Arguments:
# Message to log
# Returns:
# None
#########################
log() {
stderr_print "${CYAN}${MODULE:-} ${MAGENTA}$(date "+%Y-%m-%d %H:%M:%S.%2N ")${RESET}${*}"
}
########################
# Log an 'info' message
# Arguments:
# Message to log
# Returns:
# None
#########################
info() {
log "${GREEN}INFO ${RESET} ==> ${*}"
}
########################
# Log message
# Arguments:
# Message to log
# Returns:
# None
#########################
warn() {
log "${YELLOW}WARN ${RESET} ==> ${*}"
}
########################
# Log an 'error' message
# Arguments:
# Message to log
# Returns:
# None
#########################
error() {
log "${RED}ERROR${RESET} ==> ${*}"
}
########################
# Log a 'debug' message
# Globals:
# BITNAMI_DEBUG
# Arguments:
# None
# Returns:
# None
#########################
debug() {
# 'is_boolean_yes' is defined in libvalidations.sh, but depends on this file so we cannot source it
local bool="${BITNAMI_DEBUG:-true}"
# comparison is performed without regard to the case of alphabetic characters
shopt -s nocasematch
if [[ "$bool" = 1 || "$bool" =~ ^(yes|true)$ ]]; then
log "${MAGENTA}DEBUG${RESET} ==> ${*}"
fi
}
########################
# Indent a string
# Arguments:
# $1 - string
# $2 - number of indentation characters (default: 4)
# $3 - indentation character (default: " ")
# Returns:
# None
#########################
indent() {
local string="${1:-}"
local num="${2:?missing num}"
local char="${3:-" "}"
# Build the indentation unit string
local indent_unit=""
for ((i = 0; i < num; i++)); do
indent_unit="${indent_unit}${char}"
done
# shellcheck disable=SC2001
# Complex regex, see https://github.com/koalaman/shellcheck/wiki/SC2001#exceptions
echo "$string" | sed "s/^/${indent_unit}/"
}
CheckAndDownloadLatestVersion(){
log "checking for the latest version"
local latestVersion=$(curl $OctopusAgentUrl | grep -v h1 | grep "a href=" | awk '{print$2}' |cut -d">" -f2 | cut -d"<" -f1)
log "octopus agent latest version is => [ $latestVersion ]"
rm -rf /octopus-agent/*.jar
cd /octopus-agent
log "start to download the latest version !"
wget "$OctopusAgentUrl$latestVersion"
cp "$OctopusAgentUrl$latestVersion" agent.jar
log ""
ls /octopus-agent/ | grep jar
}

View File

@@ -95,6 +95,46 @@ check_sys() {
return 0
}
RED="31m" ## 姨妈红
GREEN="32m" ## 水鸭青
YELLOW="33m" ## 鸭屎黄
PURPLE="35m" ## 基佬紫
BLUE="36m" ## 天依蓝
BlinkGreen="32;5m" ##闪烁的绿色
BlinkRed="31;5m" ##闪烁的红色
BackRed="41m" ## 背景红色
SplitLine="----------------------" #会被sys函数中的方法重写
######## 颜色函数方法很精妙 ############
colorEcho() {
echo -e "\033[${1}${@:2}\033[0m" 1>&2
}
check_root() {
if [[ $EUID != 0 ]]; then
colorEcho ${RED} "当前非root账号(或没有root权限)无法继续操作请更换root账号!"
colorEcho ${YELLOW} "使用sudo -命令获取临时root权限执行后可能会提示输入root密码"
exit 1
fi
}
FunctionStart() {
colorEcho ${PURPLE} ${SplitLine}
colorEcho ${PURPLE} ${SplitLine}
echo ""
}
FunctionSuccess() {
colorEcho ${GREEN} ${SplitLine}
echo ""
}
FunctionEnd() {
echo ""
colorEcho ${BlinkGreen} ${SplitLine}
echo ""
echo ""
}
tmp () {