34 lines
		
	
	
		
			830 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			830 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/zsh
 | 
						|
DEPENDENCIES+=(cli53)
 | 
						|
REQUIRED_ENV+=(AWS_PROFILE)
 | 
						|
#####################################################################
 | 
						|
 | 
						|
MAIN() {
 | 
						|
	local BACKUP_PATH="$SCWRYPTS_OUTPUT_PATH/$ENV_NAME/aws-dns-backup/$(date '+%Y-%m-%d')"
 | 
						|
	mkdir -p $BACKUP_PATH >/dev/null 2>&1
 | 
						|
 | 
						|
	local DOMAIN
 | 
						|
	local JOBS=()
 | 
						|
	for DOMAIN in $(ROUTE53_GET_DOMAINS)
 | 
						|
	do
 | 
						|
		( STATUS "creating '$BACKUP_PATH/$DOMAIN.txt'" \
 | 
						|
			&& cli53 export --profile $AWS_PROFILE $DOMAIN > "$BACKUP_PATH/$DOMAIN.txt" \
 | 
						|
			&& SUCCESS "backed up '$DOMAIN'" \
 | 
						|
			|| ERROR "failed to back up '$DOMAIN'" \
 | 
						|
		) &
 | 
						|
		JOBS+=$!
 | 
						|
	done
 | 
						|
 | 
						|
	local P
 | 
						|
	for P in ${JOBS[@]}; do wait $P >/dev/null 2>&1; done
 | 
						|
}
 | 
						|
 | 
						|
#####################################################################
 | 
						|
 | 
						|
ROUTE53_GET_DOMAINS() {
 | 
						|
	cli53 list --profile $AWS_PROFILE \
 | 
						|
		| awk '{print $2;}' \
 | 
						|
		| sed '1d; s/\.$//'\
 | 
						|
		;
 | 
						|
}
 |