Created by
Mukund Raj
| #!/bin/bash
# chmod u+x backup.sh
OP_PATH='/Volumes/Seagate Wireless/Seagate Wireless/backups/'
OP_PATH='/Volumes/Public-01/Seagate Wireless/backups/'
echo $OP_PATH
cd /Users/mukundraj/Desktop/work/projects/scripts
echo "Select output base path:
1.'New drive'
2. 'New drive (Wireless)
3. 'Old drive'"
read pathid
case $pathid in
1) OP_PATH='/Volumes/Seagate Wireless/Seagate Wireless/backups/'
DRIVE_ID='D1';;
2) OP_PATH='/Volumes/Public-01/Seagate Wireless/backups/'
DRIVE_ID='D1';;
3) OP_PATH='/Volumes/Expansion D/backups/'
DRIVE_ID='D2';;
*) Wrong Input
exit 0;;
esac
echo "Starting backup. Full (f) or Incremental (i)?"
read input_variable
case $input_variable in
f|F) echo "Enter Identifier or Date (yyyy-mm-dd):"
read IDENTIFIER
FULL_BACKUP_PATH=$OP_PATH$IDENTIFIER
LATEST=$(cat latest.txt | tail -1 | awk -F $'\t' '{print $1}')
echo $FULL_BACKUP_PATH
if [ "$LATEST" = "$IDENTIFIER" ]
then
echo "Invalid Path. Same as last backup path."
else
if [ "$DRIVE_ID" = "D1" ]
then
echo -e "$IDENTIFIER\t" $(date) "FULL\t" "$DRIVE_ID">> 'latest.txt'
fi
rsync -avhr --delete --exclude-from 'exclude_list.txt' --files-from='include_list.txt' / "$FULL_BACKUP_PATH"
fi;;
i|I)
if [ "$DRIVE_ID" = "D2" ]
then
echo "Use Drive 1 for incremental backup."
else
LATEST=$(cat latest.txt | tail -1 | awk -F $'\t' '{print $1}')
FULL_BACKUP_PATH=$OP_PATH$LATEST
echo -e "$LATEST\t" $(date) "INCR\t" "$DRIVE_ID">> 'latest.txt'
rsync -avhr --delete --exclude-from 'exclude_list.txt' --files-from='include_list.txt' / "$FULL_BACKUP_PATH"
echo "Incremental backup stored in path: "$LATEST
fi;;
*) Wrong Input
exit 0;;
esac
|