[Solved] Store rsync error in variable


The line you have put here will just store that command as a string and not run it.

rsync_error="rsync -arzt --ignore-existing --delete --max-delete=1 -e 'ssh' [email protected]:$rsync_from_location $rsync_to_location"

To capture its output you would need to put it in a $( ) like so.

rsync_error=$(rsync -arzt --ignore-existing --delete --max-delete=1 -e 'ssh' [email protected]:$rsync_from_location $rsync_to_location)

This will capture the stdout of the executed command but you are wanting stderr I assume. So a better way of doing this might be to pipe to stderr to a file and handle the output that way.

# rsync err output file
ERR_OUTPUT="/tmp/rsync_err_$$"
# When the script exits, remove the file
trap "rm -f $ERR_OUTPUT" EXIT

# Use 2> to direct stderr to the output file
rsync -arzt --ignore-existing --delete --max-delete=1 -e 'ssh' [email protected]:$rsync_from_location $rsync_to_location 2> "$ERR_OUTPUT"

# Do what ever with your error file

2

solved Store rsync error in variable