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."
|