43 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| apiVersion: v1
 | |
| kind: ConfigMap
 | |
| metadata:
 | |
|   name: rsync-config
 | |
| data:
 | |
|   run-rsync.sh: |-
 | |
|     #!/bin/sh
 | |
|     set -eu
 | |
|     echo "Starting rsync..."
 | |
| 
 | |
|     no_change_count=0
 | |
| 
 | |
|     while [ "$no_change_count" -lt 3 ]; do
 | |
|       # use the i flag to get per line output of each change
 | |
|       rsync_output=$(rsync -avzi --delete /local-data/ /persistent-data/)
 | |
|       # echo "$rsync_output"
 | |
| 
 | |
|       # in this format rsync outputs at least 4 lines:
 | |
|       # ---
 | |
|       # sending incremental file list
 | |
|       #
 | |
|       # sent 145,483 bytes  received 717 bytes  26,581.82 bytes/sec
 | |
|       # total size is 708,682,765  speedup is 4,847.35
 | |
|       # ---
 | |
|       # even though a non-zero number of bytes is sent, no changes were made
 | |
| 
 | |
|       line_count=$(echo "$rsync_output" | wc -l)
 | |
| 
 | |
|       if [ "$line_count" -eq 4 ]; then
 | |
|         echo "Rsync output was: $rsync_output"
 | |
|         no_change_count=$((no_change_count + 1))
 | |
|         echo "No changes detected. Incrementing no_change_count to $no_change_count."
 | |
|       else
 | |
|         no_change_count=0
 | |
|         echo "Changes detected. Resetting no_change_count to 0."
 | |
|       fi
 | |
| 
 | |
|       echo "Rsync completed. Sleeping for 10 minutes..."
 | |
|       sleep 600
 | |
|     done
 | |
| 
 | |
|     echo "No changes detected for 3 consecutive runs. Exiting."
 |