From e1a8d8f81ae0c10770ed5a3c1a8587f1c4046d9f Mon Sep 17 00:00:00 2001 From: David Schroeder Date: Sun, 18 Mar 2018 22:37:14 -0500 Subject: [PATCH] Add new file --- linupx-scripts.sh | 278 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 278 insertions(+) create mode 100644 linupx-scripts.sh diff --git a/linupx-scripts.sh b/linupx-scripts.sh new file mode 100644 index 0000000..602afe9 --- /dev/null +++ b/linupx-scripts.sh @@ -0,0 +1,278 @@ +#!/bin/bash +# LinUPx - Linux Update Scripts + +action="$1" +useAutoremove=1 +FOLDER='/opt/LinUPx' + +Color_Off='\033[0m' +Blue='\033[0;34m' +BBlue='\033[1;34m' +Green='\033[0;32m' + +if type apt &>/dev/null; then + ATYPE="apt" + if [ "$EUID" -ne 0 ]; then APTFUNC='sudo apt' + else APTFUNC='apt' + fi +elif type apt-get &>/dev/null; then + ATYPE="apt-get" + if [ "$EUID" -ne 0 ]; then APTFUNC='sudo apt-get' + else APTFUNC='apt-get' + fi +elif type yum &>/dev/null; then + ATYPE="yum" + if [ "$EUID" -ne 0 ]; then APTFUNC='sudo yum' + else APTFUNC='yum' + fi +else + ATYPE="unknown" +fi + +$APTFUNC remove -y newrelic-sysmond +rm -f /etc/apt/sources.list.d/newrelic.list + +UPDATE1() { + if type yum &>/dev/null; then + $APTFUNC -y update + else + if [ "$useAutoremove" -ne 0 ]; then + AUTOREMOVE + $APTFUNC update + $APTFUNC upgrade -y + AUTOREMOVE + fi + fi + 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 [ "$useAutoremove" -ne 0 ]; then + AUTOREMOVE + $APTFUNC upgrade -y + AUTOREMOVE + fi + 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" +} +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 pip install --upgrade pip + sudo pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U + else + pip install --upgrade pip + pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip 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" +} +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" +} +GITUPDATE() { + echo "" + echo "" + echo "-------------------------------------------------------" + if [ -d "$FOLDER" ]; then + if [ "$EUID" -ne 0 ]; then sh -c 'cd $FOLDER && sudo git pull' + else sh -c 'cd $FOLDER && git pull' + fi + else + if [ "$EUID" -ne 0 ]; then sh -c 'cd $FOLDER && sudo git pull' + else sh -c 'cd $FOLDER && git pull' + fi + fi + echo "-------------------------------------------------------" + echo "" + echo "" + echo "If any updates were found above, you'll need to" + echo "restart this script to apply the new updates." + echo "" + 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 +} + +SCRIPT_MENU() { + while : + do + clear + echo "" + echo -e " ${BBlue}D E B I A N U P D A T E - S C R I P T S${Color_Off} ${Blue}(ver-3.03182018)${Color_Off}" + echo "-------------------------------------------------------------" + echo " $(hostname --long)" + echo "-------------------------------------------------------------" + lsb_release -a + echo "-------------------------------------------------------------" + 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 "" + echo " [0] Enable/Disable Automatic Security Updates" + echo "" + echo " [R] Reboot System" + echo " [S] Shutdown System" + echo " [Q] Quit" + echo "" + echo "" + echo -e -n "${Green}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;; + 0) ENDISASU + SCRIPT_MENU;; + [Rr]) GO_REBOOT + SCRIPT_MENU;; + [Ss]) SHUTDOWN + 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 + 1) DRYRUN1 + SCRIPT_MENU;; + 2) UPDATE1 + SCRIPT_MENU;; + 3) UPDATE2 + SCRIPT_MENU;; + 4) DRYRUN2 + SCRIPT_MENU;; + 5) DISTUPGRADE + SCRIPT_MENU;; + [Rr]) GO_REBOOT + SCRIPT_MENU;; + [Ss]) SHUTDOWN + SCRIPT_MENU;; + *) echo "Thats an invaild option,"; + exit 1;; + esac +else + if [ -e /opt/LinUPx/upscripts-install.sh ]; then + rm -f /opt/LinUPx/upscripts-install.sh + fi + if [ -e ~/runup.sh ]; then + rm -f ~/runup.sh + ln -s $FOLDER/run.sh /usr/local/bin/runup + echo "" + echo "" + echo -e "${BBlue}NOTICE:${Color_Off} To start this program from now on, simply execute the command ${Green}runup${Color_Off}." + echo -e "${BBlue}NOTICE:${Color_Off} The ~/runup.sh command will no longer work." + echo "" + echo "" + read -n 1 -s -p "Press any key to continue" + fi + + SCRIPT_MENU +fi + +exit 0