mirror of https://github.com/tteck/Proxmox.git
				
				
				
			Create update-lxcs.sh
This commit is contained in:
		
							parent
							
								
									35f132e6a4
								
							
						
					
					
						commit
						8ea1e80b3e
					
				| 
						 | 
				
			
			@ -0,0 +1,54 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
set -e
 | 
			
		||||
YW=`echo "\033[33m"`
 | 
			
		||||
BL=`echo "\033[36m"`
 | 
			
		||||
RD=`echo "\033[01;31m"`
 | 
			
		||||
CM='\xE2\x9C\x94\033'
 | 
			
		||||
GN=`echo "\033[1;92m"`
 | 
			
		||||
CL=`echo "\033[m"`
 | 
			
		||||
while true; do
 | 
			
		||||
    read -p "This Will Update All LXC Containers. Proceed(y/n)?" yn
 | 
			
		||||
    case $yn in
 | 
			
		||||
        [Yy]* ) break;;
 | 
			
		||||
        [Nn]* ) exit;;
 | 
			
		||||
        * ) echo "Please answer yes or no.";;
 | 
			
		||||
    esac
 | 
			
		||||
done
 | 
			
		||||
clear
 | 
			
		||||
function header_info {
 | 
			
		||||
echo -e "${BL}
 | 
			
		||||
  _    _ _____  _____       _______ ______ 
 | 
			
		||||
 | |  | |  __ \|  __ \   /\|__   __|  ____|
 | 
			
		||||
 | |  | | |__) | |  | | /  \  | |  | |__   
 | 
			
		||||
 | |  | |  ___/| |  | |/ /\ \ | |  |  __|  
 | 
			
		||||
 | |__| | |    | |__| / ____ \| |  | |____ 
 | 
			
		||||
  \____/|_|    |_____/_/    \_\_|  |______|
 | 
			
		||||
 | 
			
		||||
${CL}"
 | 
			
		||||
}
 | 
			
		||||
header_info
 | 
			
		||||
 | 
			
		||||
containers=$(pct list | tail -n +2 | cut -f1 -d' ')
 | 
			
		||||
 | 
			
		||||
function update_container() {
 | 
			
		||||
  container=$1
 | 
			
		||||
  echo -e "${BL}[Info]${GN} Updating${BL} $container... ${CL}"
 | 
			
		||||
  # to chain commands within one exec we will need to wrap them in bash
 | 
			
		||||
  pct exec $container -- bash -c "apt update && apt upgrade -y && apt autoremove -y"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
for container in $containers
 | 
			
		||||
do
 | 
			
		||||
  status=`pct status $container`
 | 
			
		||||
  if [ "$status" == "status: stopped" ]; then
 | 
			
		||||
    echo -e "${BL}[Info]${GN} Starting${BL} $container... ${CL}"
 | 
			
		||||
    pct start $container
 | 
			
		||||
    echo -e "${BL}[Info]${GN} Waiting For${BL} $container To Start... ${CL}"
 | 
			
		||||
    sleep 5
 | 
			
		||||
    update_container $container
 | 
			
		||||
    echo -e "${BL}[Info]${GN} Shutting down${BL} $container ${CL}"
 | 
			
		||||
    pct shutdown $container &
 | 
			
		||||
  elif [ "$status" == "status: running" ]; then
 | 
			
		||||
    update_container $container
 | 
			
		||||
  fi
 | 
			
		||||
done; wait
 | 
			
		||||
		Loading…
	
		Reference in New Issue