720 lines
20 KiB
Bash
Executable File
720 lines
20 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# LinUPx - Linux Update Scripts
|
|
|
|
action="$1"
|
|
FOLDER='/opt/idssys/linupx'
|
|
VERS='5.03122022'
|
|
|
|
if ! grep -q "RemoteSyslogServer" /opt/idssys/settings/linupx.conf; then
|
|
echo -e "\nRemoteSyslogServer=10.10.10.10" >> /opt/idssys/settings/linupx.conf
|
|
fi
|
|
|
|
if [ -d /opt/idssys/LinUPx ]; then
|
|
mv /opt/LinUPx /opt/idssys/linupx
|
|
rm -f /usr/local/bin/runup
|
|
ln -s /opt/idssys/linupx/run.sh /usr/local/bin/runup
|
|
if [ -f /opt/idssys/linupx/settings.conf ]; then
|
|
if [ ! -d /opt/idssys/settings ]; then
|
|
mkdir /opt/idssys/settings
|
|
fi
|
|
mv /opt/idssys/linupx/settings.conf /opt/idssys/settings/linupx.conf
|
|
fi
|
|
echo "Program has been updated, please re-run"
|
|
exit 0
|
|
fi
|
|
|
|
if [ -f /opt/idssys/linupx/settings.conf ]; then
|
|
if [ ! -d /opt/idssys/settings ]; then
|
|
mkdir /opt/idssys/settings
|
|
fi
|
|
mv /opt/idssys/linupx/settings.conf /opt/idssys/settings/linupx.conf
|
|
fi
|
|
|
|
if [ ! -d "/opt/idssys/linupx" ]; then
|
|
if [ ! -d /opt/idssys ]; then
|
|
mkdir /opt/idssys
|
|
fi
|
|
mv /opt/LinUPx /opt/idssys/linupx
|
|
rm -f /usr/local/bin/runup
|
|
ln -s /opt/idssys/linupx/run.sh /usr/local/bin/runup
|
|
echo "Program has been updated, please re-run"
|
|
exit 0
|
|
fi
|
|
if [ ! -d "/opt/idssys/defaults" ]; then
|
|
set -eu
|
|
git clone https://git.schroedercity.com/voltron/iDS-Defaults.git /opt/idssys/defaults
|
|
fi
|
|
|
|
source /opt/idssys/settings/linupx.conf
|
|
source /opt/idssys/defaults/colors.inc
|
|
source /opt/idssys/defaults/default.inc
|
|
|
|
Color_Off='\033[0m'
|
|
Blue='\033[0;34m'
|
|
BBlue='\033[1;34m'
|
|
Green='\033[0;32m'
|
|
LGreen='\033[1;32m'
|
|
BOrange='\033[0;33m'
|
|
DGray='\033[1;30m'
|
|
Red='\033[10;31m'
|
|
LRed='\033[1;31m'
|
|
|
|
|
|
|
|
UPDATE1() {
|
|
if [ "$opennms" = true ]; then
|
|
sudo apt-mark unhold libopennms-java libopennmsdeps-java opennms-common opennms-db
|
|
fi
|
|
if type yum &>/dev/null; then
|
|
$APTFUNC -y update
|
|
else
|
|
if [ "$useAutoremove" -ne 0 ]; then AUTOREMOVE; fi
|
|
|
|
$APTFUNC update
|
|
$APTFUNC upgrade -y
|
|
|
|
echo
|
|
echo
|
|
read -n 1 -p "Would you like to run dist-upgrade as well (Y/n)?" choice
|
|
case "$choice" in
|
|
[Yy]) $APTFUNC dist-upgrade;;
|
|
esac
|
|
|
|
if [ "$useAutoremove" -ne 0 ]; then AUTOREMOVE; fi
|
|
fi
|
|
if [ "$opennms" = true ]; then
|
|
sudo apt-mark hold libopennms-java libopennmsdeps-java opennms-common opennms-db
|
|
fi
|
|
touch "${FOLDER}/lastrun"
|
|
echo ""
|
|
echo -e "${Green}Updates have completed${Color_Off}"
|
|
if [ ${action-x} ]; then exit 0; fi
|
|
read -n 1 -s -p "Press any key to continue"
|
|
}
|
|
UPDATE2() {
|
|
if [ "$opennms" = true ]; then
|
|
sudo apt-mark unhold libopennms-java libopennmsdeps-java opennms-common opennms-db
|
|
fi
|
|
|
|
if [ "$useAutoremove" -ne 0 ]; then AUTOREMOVE; fi
|
|
|
|
$APTFUNC upgrade -y
|
|
|
|
echo
|
|
echo
|
|
read -n 1 -p "Would you like to run dist-upgrade as well (Y/n)?" choice
|
|
case "$choice" in
|
|
[Yy]) $APTFUNC dist-upgrade;;
|
|
esac
|
|
|
|
if [ "$useAutoremove" -ne 0 ]; then AUTOREMOVE; fi
|
|
|
|
if [ "$opennms" = true ]; then
|
|
sudo apt-mark hold libopennms-java libopennmsdeps-java opennms-common opennms-db
|
|
fi
|
|
|
|
touch "${FOLDER}/lastrun"
|
|
echo ""
|
|
echo -e "${Green}Updated Upgrades have completed${Color_Off}"
|
|
if [ ${action-x} ]; then exit 0; fi
|
|
read -n 1 -s -p "Press any key to continue"
|
|
}
|
|
UPDATE3() {
|
|
restart_flag='';
|
|
export DEBIAN_FRONTEND="noninteractive"
|
|
source /etc/environment
|
|
bash /etc/skel/.profile
|
|
|
|
while getopts 'r' flag; do
|
|
case "${flag}" in
|
|
r) restart_flag='true' ;;
|
|
esac
|
|
done
|
|
|
|
if [ "$autorun_logging" = true ]; then
|
|
mv -f /opt/runupdates.log.2 /opt/runupdates.log.3
|
|
mv -f /opt/runupdates.log.1 /opt/runupdates.log.2
|
|
mv -f /opt/runupdates.log /opt/runupdates.log.1
|
|
fi
|
|
if type yum &>/dev/null; then
|
|
yum -y update &>> /opt/runupdates.log
|
|
else
|
|
if [ "$opennms" = true ]; then
|
|
sudo apt-mark unhold libopennms-java libopennmsdeps-java opennms-common opennms-db
|
|
fi
|
|
if [ "$useAutoremove" -ne 0 ]; then
|
|
apt-get -y autoremove &>> /opt/runupdates.log
|
|
apt-get update &>> /opt/runupdates.log
|
|
apt-get upgrade -y &>> /opt/runupdates.log
|
|
apt-get -y autoremove &>> /opt/runupdates.log
|
|
fi
|
|
if [ "$opennms" = true ]; then
|
|
sudo apt-mark hold libopennms-java libopennmsdeps-java opennms-common opennms-db
|
|
fi
|
|
fi
|
|
touch "${FOLDER}/lastrun"
|
|
echo ""
|
|
echo -e "${Green}Updates have completed${Color_Off}"
|
|
if [ "$autorun_restart_after" = true ] || [ "$restart_flag" = true ]; then
|
|
echo -e "${BOrange}Rebooting now...${Color_Off}"
|
|
sleep 3
|
|
/sbin/shutdown -r now
|
|
fi
|
|
exit 0
|
|
}
|
|
|
|
UPDATE4() {
|
|
restart_flag='';
|
|
|
|
while getopts 'r' flag; do
|
|
case "${flag}" in
|
|
r) restart_flag='true' ;;
|
|
esac
|
|
done
|
|
|
|
if type yum &>/dev/null; then
|
|
yum -y update
|
|
else
|
|
if [ "$useAutoremove" -ne 0 ]; then
|
|
apt-get -y autoremove
|
|
apt-get update
|
|
apt-get upgrade -y
|
|
apt-get -y autoremove
|
|
fi
|
|
fi
|
|
touch "${FOLDER}/lastrun"
|
|
echo ""
|
|
echo -e "${Green}Updates have completed${Color_Off}"
|
|
if [ "$autorun_restart_after" = true ] || [ "$restart_flag" = true ]; then
|
|
echo -e "${BOrange}Rebooting now...${Color_Off}"
|
|
sleep 3
|
|
/sbin/shutdown -r now
|
|
fi
|
|
exit 0
|
|
}
|
|
DISTUPGRADE() {
|
|
if type yum &>/dev/null; then
|
|
$APTFUNC upgrade
|
|
else
|
|
$APTFUNC dist-upgrade
|
|
fi
|
|
if [ "$useAutoremove" -ne 0 ] && type apt-get &>/dev/null; then
|
|
AUTOREMOVE
|
|
fi
|
|
echo ""
|
|
echo -e "${Green}Dist Upgrades has completed${Color_Off}"
|
|
if [ ${action-x} ]; then exit 0; fi
|
|
read -n 1 -s -p "Press any key to continue"
|
|
}
|
|
PIPUPGRADE() {
|
|
if [ "$EUID" -ne 0 ]; then
|
|
sudo python3 -m pip install --upgrade pip
|
|
sudo pip3 list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip3 install -U
|
|
else
|
|
python3 -m pip install --upgrade pip
|
|
pip3 list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip3 install -U
|
|
fi
|
|
echo ""
|
|
echo -e "${Green}Python-Pip Upgrades has completed${Color_Off}"
|
|
if [ ${action-x} ]; then exit 0; fi
|
|
read -n 1 -s -p "Press any key to continue"
|
|
}
|
|
DNSUPDATE() {
|
|
bash <(curl -sL https://git.schroedercity.com/voltron/Misc-Scripts/raw/branch/master/update-dns.sh)
|
|
echo ""
|
|
echo -e "${Green}The DNS servers have been updated${Color_Off}"
|
|
if [ ${action-x} ]; then exit 0; fi
|
|
read -n 1 -s -p "Press any key to continue"
|
|
}
|
|
AUTOREMOVE() {
|
|
if [ "$useAutoremove" -ne 0 ]; then
|
|
if [ "$EUID" -ne 0 ]; then
|
|
sudo apt-get autoremove
|
|
else
|
|
apt-get autoremove
|
|
fi
|
|
fi
|
|
}
|
|
DRYRUN1() {
|
|
if type apt &>/dev/null; then
|
|
$APTFUNC update
|
|
$APTFUNC list --upgradable
|
|
elif type apt-get &>/dev/null; then
|
|
$APTFUNC update
|
|
$APTFUNC upgrade --dry-run
|
|
elif type yum &>/dev/null; then
|
|
$APTFUNC check-update
|
|
fi
|
|
echo ""
|
|
echo -e "${Green}Upgrade dry-run has completed${Color_Off}"
|
|
if [ ${action-x} ]; then exit 0; fi
|
|
read -n 1 -s -p "Press any key to continue"
|
|
}
|
|
DRYRUN2() {
|
|
if type yum &>/dev/null; then
|
|
$APTFUNC --obsoletes check-update
|
|
else
|
|
$APTFUNC dist-upgrade --dry-run
|
|
fi
|
|
echo ""
|
|
echo -e "${Green}Dist-Upgrade dry-run has completed${Color_Off}"
|
|
if [ ${action-x} ]; then exit 0; fi
|
|
read -n 1 -s -p "Press any key to continue"
|
|
}
|
|
GO_REBOOT() {
|
|
read -n 1 -p "Are you sure you wish to reboot (y/N)?" choice
|
|
case "$choice" in
|
|
[Yy]) if [ "$EUID" -ne 0 ]; then sudo shutdown -r now
|
|
else shutdown -r now
|
|
fi
|
|
echo 'The system is now rebooting...'
|
|
sleep 60
|
|
exit 0;;
|
|
* ) SCRIPT_MENU;;
|
|
esac
|
|
}
|
|
SHUTDOWN() {
|
|
read -n 1 -p "Are you sure you wish to shutdown (y/N)?" choice
|
|
case "$choice" in
|
|
[Yy]) if [ "$EUID" -ne 0 ]; then sudo shutdown -h now
|
|
else shutdown -h now
|
|
fi
|
|
echo 'The system is now shutting down...'
|
|
sleep 60
|
|
exit 0;;
|
|
* ) SCRIPT_MENU;;
|
|
esac
|
|
}
|
|
ENDISASU() {
|
|
if [ "$EUID" -ne 0 ]; then sudo dpkg-reconfigure --priority=low unattended-upgrades
|
|
else dpkg-reconfigure --priority=low unattended-upgrades
|
|
fi
|
|
}
|
|
|
|
EXIT1() {
|
|
clear
|
|
exit 0
|
|
}
|
|
|
|
WEBMIN_INSTALL() {
|
|
read -n 1 -p "Are you sure you wish to install Webmin (Y/n)?" choice
|
|
case "$choice" in
|
|
[Nn]) INSTALL_MENU;;
|
|
* )
|
|
echo ""
|
|
bash <(curl -sL https://git.schroedercity.com/voltron/Misc-Scripts/raw/master/install-webmin.sh)
|
|
echo ""
|
|
echo -e "${Green}Webmin has been Installed${Color_Off}"
|
|
if [ ${action-x} ]; then exit 0; fi
|
|
read -n 1 -s -p "Press any key to continue";;
|
|
esac
|
|
}
|
|
GLANCES_INSTALL() {
|
|
read -n 1 -p "Are you sure you wish to install Glances (Y/n)?" choice
|
|
case "$choice" in
|
|
[Nn]) INSTALL_MENU;;
|
|
* )
|
|
echo ""
|
|
bash <(curl -sL https://git.schroedercity.com/voltron/Misc-Scripts/raw/master/install-glances.sh)
|
|
echo ""
|
|
echo -e "${Green}Glances has been Installed${Color_Off}"
|
|
if [ ${action-x} ]; then exit 0; fi
|
|
read -n 1 -s -p "Press any key to continue";;
|
|
esac
|
|
}
|
|
MYSQLBU_INSTALL() {
|
|
read -n 1 -p "Are you sure you wish to install MySQL-BU (Y/n)?" choice
|
|
case "$choice" in
|
|
[Nn]) INSTALL_MENU;;
|
|
* )
|
|
echo ""
|
|
bash <(curl -sL https://git.schroedercity.com/voltron/Misc-Scripts/raw/master/install-mysqlbu.sh)
|
|
echo ""
|
|
echo -e "${Green}MySQL-BU has been Installed${Color_Off}"
|
|
if [ ${action-x} ]; then exit 0; fi
|
|
read -n 1 -s -p "Press any key to continue";;
|
|
esac
|
|
}
|
|
DSMON_INSTALL() {
|
|
read -n 1 -p "Are you sure you wish to install DSMon (Y/n)?" choice
|
|
case "$choice" in
|
|
[Nn]) INSTALL_MENU;;
|
|
* )
|
|
echo ""
|
|
bash <(curl -sL https://git.schroedercity.com/voltron/Misc-Scripts/raw/branch/master/install-dsmon.sh)
|
|
echo ""
|
|
echo -e "${Green}DSMon has been Installed${Color_Off}"
|
|
if [ ${action-x} ]; then exit 0; fi
|
|
read -n 1 -s -p "Press any key to continue";;
|
|
esac
|
|
}
|
|
IPERF_INSTALL() {
|
|
read -n 1 -p "Are you sure you wish to install iPerf (Y/n)?" choice
|
|
case "$choice" in
|
|
[Nn]) INSTALL_MENU;;
|
|
* )
|
|
echo ""
|
|
|
|
cd /tmp
|
|
wget https://downloads.es.net/pub/iperf/iperf-3.10.1.tar.gz
|
|
tar -zxhf iperf-3.10.1.tar.gz
|
|
cd /tmp/iperf-3.10.1
|
|
./configure
|
|
make
|
|
make install
|
|
ldconfig
|
|
|
|
echo ""
|
|
echo -e "${Green}iPerf has been Installed${Color_Off}"
|
|
if [ ${action-x} ]; then exit 0; fi
|
|
read -n 1 -s -p "Press any key to continue";;
|
|
esac
|
|
}
|
|
SPEEDTEST_INSTALL() {
|
|
read -n 1 -p "Are you sure you wish to install SpeedTest (Y/n)?" choice
|
|
case "$choice" in
|
|
[Nn]) INSTALL_MENU;;
|
|
* )
|
|
echo ""
|
|
|
|
$APTFUNC remove -y speedtest speedtest-cli
|
|
pip uninstall speedtest speedtest-cli -y
|
|
rm -y /usr/local/bin/speedtest-cli
|
|
curl -s https://install.speedtest.net/app/cli/install.deb.sh | sudo bash
|
|
$APTFUNC install -y speedtest
|
|
|
|
echo ""
|
|
echo -e "${Green}SpeedTest has been Installed${Color_Off}"
|
|
echo ""
|
|
echo -e "${LightCyan}To run, use the command: speedtest${Color_Off}"
|
|
if [ ${action-x} ]; then exit 0; fi
|
|
read -n 1 -s -p "Press any key to continue";;
|
|
esac
|
|
}
|
|
URBACKUP_INSTALL() {
|
|
read -n 1 -p "Are you sure you wish to install Urbackup Client (Y/n)?" choice
|
|
case "$choice" in
|
|
[Nn]) INSTALL_MENU;;
|
|
* )
|
|
echo ""
|
|
|
|
read -p "Enter ClientID:" clientid
|
|
echo ""
|
|
read -p "Enter Auth Key:" authkey
|
|
|
|
TF=`mktemp` && wget "http://urbackup.scity.us:55414/x?a=download_client&lang=en&clientid=${clientid}&authkey=${authkey}&os=linux" -O $TF && sudo sh $TF; rm -f $TF
|
|
|
|
echo ""
|
|
echo -e "${Green}UrBackup Client has been Installed${Color_Off}"
|
|
echo ""
|
|
if [ ${action-x} ]; then exit 0; fi
|
|
read -n 1 -s -p "Press any key to continue";;
|
|
esac
|
|
}
|
|
X11VNC_INSTALL() {
|
|
read -n 1 -p "Are you sure you wish to install x11vnc (Y/n)?" choice
|
|
case "$choice" in
|
|
[Nn]) INSTALL_MENU;;
|
|
* )
|
|
echo ""
|
|
bash <(curl -sL https://git.schroedercity.com/voltron/Misc-Scripts/raw/master/install-vnc.sh)
|
|
echo ""
|
|
echo -e "${Green}x11vnc has been Installed${Color_Off}"
|
|
if [ ${action-x} ]; then exit 0; fi
|
|
read -n 1 -s -p "Press any key to continue";;
|
|
esac
|
|
}
|
|
LINUPX_UNINSTALL() {
|
|
read -n 1 -p "Are you sure you wish to remove LinUPx (Y/n)?" choice
|
|
case "$choice" in
|
|
[Nn]) INSTALL_MENU;;
|
|
* )
|
|
echo ""
|
|
bash <(curl -sL https://git.schroedercity.com/voltron/Misc-Scripts/raw/master/uninstall-linupx.sh)
|
|
exit 0;;
|
|
esac
|
|
}
|
|
FW_INSTALL() {
|
|
read -n 1 -p "Are you sure you wish to install Filewatcher (Y/n)?" choice
|
|
case "$choice" in
|
|
[Nn]) INSTALL_MENU;;
|
|
* )
|
|
echo ""
|
|
bash <(curl -sL https://git.schroedercity.com/voltron/Misc-Scripts/raw/master/install-filewatcher.sh)
|
|
exit 0;;
|
|
esac
|
|
}
|
|
ENABLE_REMOTESYSLOG(){
|
|
read -n 1 -p "Are you sure you wish to enable sending syslogs to ${RemoteSyslogServer} (Y/n)?" choice
|
|
case "$choice" in
|
|
[Nn]) SCRIPT_MENU;;
|
|
* )
|
|
echo ""
|
|
echo -e "\n\n*.* @${RemoteSyslogServer}:514" >> /etc/rsyslog.d/50-default.conf
|
|
service rsyslog restart
|
|
SCRIPT_MENU;;
|
|
esac
|
|
}
|
|
PYTHON3UPGRADE(){
|
|
read -n 1 -p "Are you sure you wish to upgrade to Python3 (Y/n)?" choice
|
|
case "$choice" in
|
|
[Nn]) INSTALL_MENU;;
|
|
* )
|
|
add-apt-repository -y ppa:deadsnakes/ppa
|
|
$APTFUNC install -y python3.10 python3-pip
|
|
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
|
|
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2
|
|
update-alternatives --config python3
|
|
|
|
echo ""
|
|
echo -e "${Green}Python3.10 Upgrade has been Completed${Color_Off}"
|
|
if [ ${action-x} ]; then exit 0; fi
|
|
read -n 1 -s -p "Press any key to continue"
|
|
SCRIPT_MENU;;
|
|
esac
|
|
}
|
|
POSTFIX_INSTALL(){
|
|
read -n 1 -p "Are you sure you wish to install Postfix (Y/n)?" choice
|
|
case "$choice" in
|
|
[Nn]) INSTALL_MENU;;
|
|
* )
|
|
echo
|
|
echo -e "${Green}Select default options upon install as config will be overwritten by script at the end${Color_Off}"
|
|
read -n 1 -s -p "Press any key to continue"
|
|
echo
|
|
|
|
$APTFUNC install -y postfix mailutils
|
|
cd /etc/postfix
|
|
service stop postfix
|
|
|
|
echo
|
|
echo -e -n "${idsCL[LightCyan]}Server is internal or external (I/e): ${idsCL[Default]}"
|
|
read SERVERLOC
|
|
|
|
if [ "${SERVERLOC}" = "" ]; then SERVERLOC=I; fi
|
|
|
|
mv /etc/postfix/main.cf /etc/postfix/main.cf.bak
|
|
|
|
case ${SERVERLOC} in
|
|
[Ii]) wget https://git.schroedercity.com/voltron/Misc-Scripts/raw/branch/master/defaults/main.cf -O /etc/postfix/main.cf;;
|
|
[Ee])
|
|
echo
|
|
echo -e -n "${idsCL[LightCyan]}Username for scity.us domain email: ${idsCL[Default]}"
|
|
read USERNAME
|
|
echo
|
|
echo -e -n "${idsCL[LightCyan]}Password for scity.us domain email: ${idsCL[Default]}"
|
|
read -s PASSWORD
|
|
echo
|
|
wget https://git.schroedercity.com/voltron/Misc-Scripts/raw/branch/master/defaults/main.auth.cf -O /etc/postfix/main.cf
|
|
echo "mail.scity.us ${USERNAME}@scity.us:${PASSWORD}" > /etc/postfix/sasl_passwd
|
|
sudo chmod 600 /etc/postfix/sasl_passwd
|
|
sudo postmap /etc/postfix/sasl_passwd
|
|
sudo rm -f /etc/postfix/sasl_passwd
|
|
;;
|
|
esac
|
|
|
|
wget https://git.schroedercity.com/voltron/Misc-Scripts/raw/branch/master/defaults/sender_canonical -O /etc/postfix/sender_canonical
|
|
|
|
hostname=`hostname`
|
|
echo -e -n "${idsCL[LightCyan]}Server Name (Default = \"${hostname}\"): ${idsCL[Default]}"
|
|
read pfhostname
|
|
echo ""
|
|
|
|
if [ "${pfhostname}" = "" ]; then pfhostname=${hostname}; fi
|
|
|
|
read -p "Default from email (portion before @scity.us, Default = \"${hostname}\"): " pffromemail
|
|
echo ""
|
|
|
|
if [ "${pffromemail}" = "" ]; then pffromemail=${hostname}; fi
|
|
|
|
sed -i "s/<<HOSTNAME>>/${pfhostname}/g" main.cf
|
|
sed -i "s/<<FROMEMAIL>>/${pffromemail}/g" sender_canonical
|
|
|
|
service postfix start
|
|
|
|
echo ""
|
|
echo -e "${Green}Postfix has been Installed${Color_Off}"
|
|
if [ ${action-x} ]; then exit 0; fi
|
|
read -n 1 -s -p "Press any key to continue"
|
|
SCRIPT_MENU;;
|
|
esac
|
|
}
|
|
BASHRC_INSTALL(){
|
|
echo -e "${Green}Installing root/.bashrc${Color_Off}"
|
|
/usr/bin/wget -O /root/.bashrc https://git.schroedercity.com/voltron/Misc-Scripts/raw/branch/master/bashrc
|
|
INSTALL_MENU
|
|
}
|
|
|
|
SCRIPT_MENU() {
|
|
if [ -f ${FOLDER}/lastrun ]; then
|
|
LASTRUND=$(stat -c %y ${FOLDER}/lastrun | cut -d ' ' -f1)
|
|
LASTRUNT=$((stat -c %y ${FOLDER}/lastrun | cut -d ' ' -f2) | cut -d '.' -f1)
|
|
else
|
|
LASTRUND='never'
|
|
LASTRUNT=''
|
|
fi
|
|
while :
|
|
do
|
|
clear
|
|
echo ""
|
|
echo -e " ${LGreen}LinUPx - L I N U X U P D A T E S C R I P T S${Color_Off} ${DGray}(ver-${VERS})${Color_Off}"
|
|
echo -e "${LGreen}---------------------------------------------------------------------------${Color_Off}"
|
|
echo -e "Hostname: ${BBlue}$(hostname -s)${Color_Off}"
|
|
echo -e "Domain: ${BBlue}$(hostname -d)${Color_Off}"
|
|
echo ""
|
|
echo -e "Last run: ${Green}${LASTRUND} ${LASTRUNT}${Color_Off}"
|
|
echo "---------------------------------------------------------------------------"
|
|
OS=($(detect_os))
|
|
width=14
|
|
printf "%-${width}s: %s\n" "Machine" "${OS[0]}"
|
|
printf "%-${width}s: %s\n" "Distribution" "${OS[1]}"
|
|
printf "%-${width}s: %s\n" "Derivative" "${OS[2]}"
|
|
printf "%-${width}s: %s\n" "Version" "${OS[3]}"
|
|
printf "%-${width}s: %s\n" "Codename/Rev" "${OS[4]}"
|
|
echo -e "${LGreen}---------------------------------------------------------------------------${Color_Off}"
|
|
echo ""
|
|
echo " [1] Check for Updates/Upgrades"
|
|
echo " [2] Run Updates"
|
|
if [ "$ATYPE" != 'yum' ]; then
|
|
echo " [3] Run Updates w/o retrieving new repo list"
|
|
fi
|
|
echo ""
|
|
echo " [4] Check for Upgrades with obsoletes enabled"
|
|
echo " [5] Run Dist-Upgrade"
|
|
echo " [6] Run Python-Pip Upgrades"
|
|
echo " [7] Upgrade to Python v3"
|
|
echo " [8] Update DNS Servers"
|
|
echo ""
|
|
if [ "$ATYPE" != 'yum' ]; then
|
|
echo " [0] Enable/Disable Automatic Security Updates"
|
|
echo ""
|
|
fi
|
|
echo " [I] Installation Scripts"
|
|
echo ""
|
|
# echo " [L] Enable Remote Syslog"
|
|
# echo " [Config file: RemoteSyslogServer=${RemoteSyslogServer}]"
|
|
# echo ""
|
|
echo " [R] Reboot System"
|
|
echo " [S] Shutdown System"
|
|
echo " [Q] Quit"
|
|
echo ""
|
|
echo ""
|
|
echo -e -n "${BOrange}Please select an [ActionItem] from above:${Color_Off} "
|
|
read -n 1 opt
|
|
echo ""
|
|
case $opt in
|
|
1) DRYRUN1
|
|
SCRIPT_MENU;;
|
|
2) UPDATE1
|
|
SCRIPT_MENU;;
|
|
3) UPDATE2
|
|
SCRIPT_MENU;;
|
|
4) DRYRUN2
|
|
SCRIPT_MENU;;
|
|
5) DISTUPGRADE
|
|
SCRIPT_MENU;;
|
|
6) PIPUPGRADE
|
|
SCRIPT_MENU;;
|
|
7) PYTHON3UPGRADE
|
|
SCRIPT_MENU;;
|
|
8) DNSUPDATE
|
|
SCRIPT_MENU;;
|
|
0) ENDISASU
|
|
SCRIPT_MENU;;
|
|
[Ii]) INSTALL_MENU;;
|
|
[Ll]) ENABLE_REMOTESYSLOG;;
|
|
[Rr]) GO_REBOOT
|
|
SCRIPT_MENU;;
|
|
[Ss]) SHUTDOWN
|
|
SCRIPT_MENU;;
|
|
[Qq]) EXIT1
|
|
exit 0;;
|
|
*) echo "Thats an invaild option,";
|
|
echo "please select a valid option only.";
|
|
sleep 1;;
|
|
esac
|
|
done
|
|
}
|
|
INSTALL_MENU() {
|
|
while :
|
|
do
|
|
clear
|
|
echo ""
|
|
echo -e " ${LGreen}LinUPx - L I N U X U P D A T E S C R I P T S${Color_Off} ${DGray}(ver-${VERS})${Color_Off}"
|
|
echo -e " ${Green}INSTALLATION SCRIPTS${Color_Off}"
|
|
echo -e "${LGreen}---------------------------------------------------------------------------${Color_Off}"
|
|
echo -e "Hostname: ${BBlue}$(hostname -s)${Color_Off}"
|
|
echo -e "Domain: ${BBlue}$(hostname -d)${Color_Off}"
|
|
echo -e "${LGreen}---------------------------------------------------------------------------${Color_Off}"
|
|
echo ""
|
|
echo " [1] Webmin"
|
|
echo " [2] Glances"
|
|
echo " [3] x11vnc"
|
|
echo " [4] Filewatcher"
|
|
echo " [5] MySQL-BU"
|
|
echo " [6] DSMon"
|
|
echo " [7] iPerf v3.10.1"
|
|
echo " [8] Speedtest.net"
|
|
echo ""
|
|
echo " [9] Install .bashrc for root"
|
|
echo ""
|
|
echo " [P] Install postfix"
|
|
echo ""
|
|
echo " [U] Install UrBackup Client"
|
|
echo ""
|
|
echo " [0] Remove LinUPx"
|
|
echo ""
|
|
echo " [B] Back to Update Scripts"
|
|
echo " [Q] Quit"
|
|
echo ""
|
|
echo ""
|
|
echo -e -n "${BOrange}Please select an [ActionItem] from above:${Color_Off} "
|
|
read -n 1 opt
|
|
echo ""
|
|
case $opt in
|
|
1) WEBMIN_INSTALL
|
|
INSTALL_MENU;;
|
|
2) GLANCES_INSTALL
|
|
INSTALL_MENU;;
|
|
3) X11VNC_INSTALL
|
|
INSTALL_MENU;;
|
|
4) FW_INSTALL
|
|
INSTALL_MENU;;
|
|
5) MYSQLBU_INSTALL
|
|
INSTALL_MENU;;
|
|
6) DSMON_INSTALL
|
|
INSTALL_MENU;;
|
|
7) IPERF_INSTALL
|
|
INSTALL_MENU;;
|
|
8) SPEEDTEST_INSTALL
|
|
INSTALL_MENU;;
|
|
9) BASHRC_INSTALL
|
|
INSTALL_MENU;;
|
|
0) LINUPX_UNINSTALL
|
|
INSTALL_MENU;;
|
|
[Uu]) URBACKUP_INSTALL
|
|
INSTALL_MENU;;
|
|
[Pp]) POSTFIX_INSTALL
|
|
INSTALL_MENU;;
|
|
[Bb]) SCRIPT_MENU;;
|
|
[Qq]) EXIT1
|
|
exit 1;;
|
|
*) echo "Thats an invaild option,";
|
|
echo "please select a valid option only.";
|
|
sleep 1;;
|
|
esac
|
|
done
|
|
}
|
|
|
|
if [ ${action-x} ]; then
|
|
case $1 in
|
|
update) UPDATE3;;
|
|
up) UPDATE4;;
|
|
# *) echo "Thats an invaild option,";
|
|
# exit 1;;
|
|
esac
|
|
else
|
|
SCRIPT_MENU
|
|
fi
|
|
|
|
exit 0 |