Updates and fixes.
Updates and fixes.

Clarified better between what is being backed up and where it's going. (Source and Target)
Fixed cleaning expired backups. Looks in $TARGET_DIR and not in $TMP_DIR. 
Added if check for only creating .ftp_cache/search_file.tmp and deleting expired backups, if $FTP_BACKUP_OPTION=1
Removed a cd $TMP_DIR/backup.incoming. Doesn't appear to be needed.
Fixed "Optional check if source files exist. Email if failed." Previously would email a failure even if everything was fine.
Changed tar and variables to use xz instead. I get a bit better compression with xz instead.
Note, I don't currently have a FTP server to test with. But it looks like .ftp_cache will be a local copy of what's on the FTP site anyway. This could consume a lot of disk space.
Changed mkdir to include -p so if a directory already exists it doesn't throw an error.
Removed extra "rm -rf $TMP_DIR/backup.incoming"
Updated email subject to include source dir.
Changed tar to follow symlinks.
... Probably some more changes that I forgot to mention. FTP is untested. Expired backup deleting is untested.
kukukk/bash-backup-rotation-script,todiadiyatmo/bash-backup-rotation-script