ezra
Contributor
- Joined
- Jan 15, 2015
- Messages
- 124
I needed a way to auto update all my jails without the need to edit the script when I delete or add jails. The last script on the forum was a little outdated and did not add jails automatically.
This will grep all jails by name and update, upgrade, pkg upgrade/update and restart the jails if needed.
Please advise if you have any pointers to make the script better.
FreeNAS 11.2 beta-1 / iocage jails.
	
		
			
		
		
	
			
			This will grep all jails by name and update, upgrade, pkg upgrade/update and restart the jails if needed.
Please advise if you have any pointers to make the script better.
FreeNAS 11.2 beta-1 / iocage jails.
Code:
#!/bin/bash
VERSION=$(freebsd-version | sed 's|STABLE|RELEASE|g')
declare -a vars
eval "vars=(`/usr/local/bin/iocage list | awk '{ print $4 }' | sed '2d' | grep .`)"
for ((I = 0; I < ${#vars[@]}; ++I )); do
	/usr/local/bin/iocage update "${vars[$I]}"
	/usr/local/bin/iocage upgrade "${vars[$I]}" -r "$VERSION"
	  if /usr/local/bin/iocage exec "${vars[$I]}" "pkg update && pkg upgrade" | grep -q 'Your packages are up to date.'; then
		echo "No need to restart jails"
	  else
		/usr/local/bin/iocage restart "${vars[$I]}"
	  fi
done
			
				Last edited: 
			
		
	
								
								
									
	
		
			
		
		
	
	
		
			
		
	
	
		
			
		
		
	
								
							
							 
				 
 
		 
 
		 
 
		 
 
		