MOON
Server: Apache
System: Linux vps.erhabenn.com.br 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64
User: sonne (1011)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //opt/microsoft/omsagent/bin/uninstall
#!/bin/sh

#
# Uninstall script for OMS agent
#

installMode=R

if [ -n "$1" ]; then
    installMode=$1
fi

if [ "$installMode" != "R" -a "$installMode" != "P" ]; then
    echo "Invalid option specified: \"${installMode}\"; Valid modes: R (remove), P (purge)" 1>&2
    exit 1
fi

ulinux_detect_installer()
{
    INSTALLER=""

    # Detect based on distribution
    if [ -f "/etc/debian_version" ]; then # Ubuntu, Debian
        INSTALLER="DPKG"
    elif [ -f "/etc/redhat-release" ]; then # RHEL, CentOS, Oracle
        INSTALLER="RPM"
    elif [ -f "/etc/os-release" ]; then # Possibly SLES, openSUSE
        grep PRETTY_NAME /etc/os-release | sed 's/PRETTY_NAME=//g' | tr -d '="' | grep -qi suse
        if [ $? == 0 ]; then
            INSTALLER="RPM"
        fi
    fi

    # Fall back on detection via package manager availability
    if [ "$INSTALLER" = "" ]; then
        if [ -x "$(command -v dpkg)" ]; then
            INSTALLER="DPKG"
        elif [ -x "$(command -v rpm)" ]; then
            INSTALLER="RPM"
        fi
    fi
}

# $1 - The package name of the package to be uninstalled
pkg_rm() {
    ulinux_detect_installer
    echo "----- Removing package: $1 -----"
    if [ "$INSTALLER" = "DPKG" ]; then
        if [ "$installMode" = "P" ]; then
            dpkg --purge ${1}
        else
			# for OMI alone, always purge so that config is removed
			if [ "$1" = "omi" ]; then
				dpkg --purge ${1}
			else
				dpkg --remove ${1}
			fi
        fi
    else
        rpm --erase ${1}
    fi
    if [ $? -ne 0 ]; then
        echo "----- Ignore previous errors for package: $1 -----"
    fi	
}

# $1 - The name of the package to check as to whether it's installed
check_if_pkg_is_installed() {
    ulinux_detect_installer

    if [ "$INSTALLER" = "DPKG" ]; then
        dpkg -s $1 2> /dev/null | grep Status | egrep " installed| deinstall" 1> /dev/null
    else
        rpm -q $1 > /dev/null 2>&1
    fi

    return $?
}

# Do our stuff - uninstall the OMS agent

pkg_rm omsconfig

# If MDSD/LAD is installed and we're just removing (not purging), leave OMS, SCX and OMI
check_if_pkg_is_installed azsec-mdsd
azsec_mdsd_installed=$?
check_if_pkg_is_installed lad-mdsd
lad_mdsd_installed=$?

# if at least one of mdsd product is installed
MDSD_INSTALLED=$(( $azsec_mdsd_installed && $lad_mdsd_installed ))

# If LAD was installed don't remove omsagent, but proceed if purge mode was selected
if [ $lad_mdsd_installed -ne 0 -o "$installMode" = "P" ]; then
    pkg_rm omsagent
else
    echo "--- LAD detected; not removing OMS package ---"
    ws_conf_dir="/etc/opt/microsoft/omsagent/conf"
    primary_ws_id=''
    if [ -f ${ws_conf_dir}/omsadmin.conf ]; then
        primary_ws_id=`grep WORKSPACE_ID ${ws_conf_dir}/omsadmin.conf | cut -d= -f2`
    fi

    if [ "${primary_ws_id}" != "" -a "${primary_ws_id}" != "LAD" ]; then
        echo "--- Unboarding the workspace ${primary_ws_id}... ---"
        /opt/microsoft/omsagent/bin/omsadmin.sh -x ${primary_ws_id}
    fi
fi

if [ $MDSD_INSTALLED -ne 0 -o "$installMode" = "P" ]; then
    if [ -f /opt/microsoft/scx/bin/uninstall ]; then
	/opt/microsoft/scx/bin/uninstall $installMode
    else
	for i in /opt/microsoft/*-cimprov; do
	    PKG_NAME=`basename $i`
	    if [ "$PKG_NAME" != "*-cimprov" ]; then
		echo "Removing ${PKG_NAME} ..."
		pkg_rm ${PKG_NAME}
	    fi
	done

	# Now just simply pkg_rm scx and omi
	pkg_rm scx
	pkg_rm omi
    fi
else
    echo "--- MDSD detected; not removing SCX or OMI packages ---"
fi

# If bundled auoms is installed, then remove it
check_if_pkg_is_installed auoms
if [ $? -eq 0 ]; then
    pkg_rm auoms
fi

if [ "$installMode" = "P" ]; then
    echo "Purging all files in cross-platform agent ..."

    #
    # Be careful to not remove files if dependent packages are still using them
    #

    check_if_pkg_is_installed omsconfig
    if [ $? -ne 0 ]; then
	rm -rf /etc/opt/microsoft/omsconfig /opt/microsoft/omsconfig /var/opt/microsoft/omsconfig
    fi

    check_if_pkg_is_installed omsagent
    if [ $? -ne 0 ]; then
	rm -rf /etc/opt/microsoft/omsagent /opt/microsoft/omsagent /var/opt/microsoft/omsagent
    fi

    check_if_pkg_is_installed scx
    if [ $? -ne 0 ]; then
	rm -rf /etc/opt/microsoft/scx /opt/microsoft/scx /var/opt/microsoft/scx \
	    /etc/opt/microsoft/*-cimprov /opt/microsoft/*-cimprov /var/opt/microsoft/*-cimprov
    fi

    check_if_pkg_is_installed omi
    if [ $? -ne 0 ]; then
	rm -rf /etc/opt/omi /opt/omi /var/opt/omi
    fi

    check_if_pkg_is_installed auoms
    if [ $? -ne 0 ]; then
	rm -rf /etc/opt/microsoft/auoms /opt/microsoft/auoms /var/opt/microsoft/auoms
    fi

    rmdir /etc/opt/microsoft /opt/microsoft /var/opt/microsoft > /dev/null 2>&1 || true
    rmdir /etc/opt /var/opt > /dev/null 2>&1 || true
fi