#!/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' LGreen='\033[1;32m' BOrange='\033[0;33m' DGray='\033[1;30m' Red='\033[10;31m' LRed='\033[1;31m' 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} ${DGray}(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 "${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;; 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