#INIT backup_diff_dir='' source_dir='/home/test/source/' backup_dir='/home/test/backup/' cd $backup_dir #CHECK FULL BACKUPS backup_full_dir='none' for i in $(ls -dX */|grep FULL_) do backup_full_dir=$i done if [ $backup_full_dir == 'none' ] then echo 'No FULL backup found in $backup_dir' exit 1 fi #DIFF backup_date=$(date +%Y%m%d_%H%M%S) backup_id=$(echo $backup_full_dir|cut -d'_' -f4) backup_name='DIFF_'$backup_date'_'$backup_id tar_file=$backup_dir${backup_name%/}'.tar.gz' mkdir $backup_name backup_diff_dir=$backup_dir$backup_name rsync -av --compare-dest=$backup_dir$backup_full_dir $source_dir $backup_diff_dir tar --remove-files -czPf $tar_file $backup_diff_dir exit 0