2
0

Add Supporting_scripts/Linux - Update TRMM agent.sh

This commit is contained in:
2023-09-06 11:41:14 +02:00
parent 24ccefc4bd
commit f76fa53ae5

View File

@@ -0,0 +1,147 @@
#!/bin/bash
#Source: https://github.com/netvolt/LinuxRMM-Script/blob/main/rmmagent-linux.sh
check_zip=$(which unzip 2> /dev/null)
if [[ $check_zip == "" || $check_zip =~ .*"no unzip".* ]]; then
echo "unzip could not be found. Trying to install automatically."
if [[ `which yum` ]]; then
yum -y install unzip
echo "Unzip installed. Continue script..."
elif [[ `which apt` ]]; then
apt-get -y update
apt-get -y install unzip
echo "Unzip installed. Continue script..."
else
echo "unzip could not be installed. Please install unzip manually."
fi
exit 1
fi
if [[ $1 == "" ]]; then
echo "First argument is empty !"
echo "Type help for more information"
exit 1
fi
if [[ $1 == "help" ]]; then
echo "There is help but more information is available at github.com/ZoLuSs/rmmagent-script"
echo ""
echo "List of UPDATE argument (no argument name)"
echo "Arg 1: 'update'"
echo "Arg 2: System type 'amd64' 'x86' 'arm64' 'armv6'"
echo ""
echo ""
exit 0
fi
if [[ $1 != "update" ]]; then
echo "First argument can only be 'update' !"
echo "Type help for more information"
exit 1
fi
if [[ $1 == "update" && $2 == "" ]]; then
echo "Argument 2 (System type) is empty !"
echo "Type help for more information"
exit 1
fi
## Setting var for easy scription
system=$2
go_url_amd64="https://go.dev/dl/go1.18.3.linux-amd64.tar.gz"
go_url_x86="https://go.dev/dl/go1.18.3.linux-386.tar.gz"
go_url_arm64="https://go.dev/dl/go1.18.3.linux-arm64.tar.gz"
go_url_armv6="https://go.dev/dl/go1.18.3.linux-armv6l.tar.gz"
function check_profile () {
source /etc/environment
profile_file="/root/.profile"
path_count=$(cat $profile_file | grep -o "export PATH=/usr/local/go/bin" | wc -l)
if [[ $path_count -ne 0 ]]; then
echo "Removing incorrect \$PATH variable\(s\)"
sed -i "/export\ PATH\=\/usr\/local\/go\/bin/d" $profile_file
fi
path_count=$(cat $profile_file | grep -o "export PATH=\$PATH:/usr/local/go/bin" | wc -l)
if [[ $path_count -ne 1 ]]; then
echo "Fixing \$PATH Variable"
sed -i "/export\ PATH\=\$PATH\:\/usr\/local\/go\/bin/d" $profile_file
echo "export PATH=\$PATH:/usr/local/go/bin" >> $profile_file
fi
source $profile_file
}
function go_install() {
if ! command -v go &> /dev/null; then
## Installing golang
case $system in
amd64)
wget -O /tmp/golang.tar.gz $go_url_amd64
;;
x86)
wget -O /tmp/golang.tar.gz $go_url_x86
;;
arm64)
wget -O /tmp/golang.tar.gz $go_url_arm64
;;
armv6)
wget -O /tmp/golang.tar.gz $go_url_armv6
;;
esac
tar -xvzf /tmp/golang.tar.gz -C /usr/local/
rm /tmp/golang.tar.gz
export GOPATH=/usr/local/go
export GOCACHE=/root/.cache/go-build
echo "Golang Install Done !"
else
echo "Go is already installed"
fi
}
function agent_compile() {
## Compiling and installing tactical agent from github
echo "Agent Compile begin"
wget -O /tmp/rmmagent.zip "https://github.com/amidaware/rmmagent/archive/refs/heads/master.zip"
unzip /tmp/rmmagent -d /tmp/
rm /tmp/rmmagent.zip
cd /tmp/rmmagent-master
case $system in
amd64)
env CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -w" -o /tmp/temp_rmmagent
;;
x86)
env CGO_ENABLED=0 GOOS=linux GOARCH=386 go build -ldflags "-s -w" -o /tmp/temp_rmmagent
;;
arm64)
env CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags "-s -w" -o /tmp/temp_rmmagent
;;
armv6)
env CGO_ENABLED=0 GOOS=linux GOARCH=arm go build -ldflags "-s -w" -o /tmp/temp_rmmagent
;;
esac
cd /tmp
rm -R /tmp/rmmagent-master
}
function update_agent() {
systemctl stop tacticalagent
cp /tmp/temp_rmmagent /usr/local/bin/tacticalagent
rm /tmp/temp_rmmagent
systemctl start tacticalagent
}
case $1 in
update)
check_profile
go_install
agent_compile
update_agent
echo "Tactical Agent Update is done"
exit 0;;
esac