Hi there, i have been working on a backup script and have it just about working, the only problem im left with is that my filenames for my backups are all the same are replacing one another when backing up.
currently i have
BACKUP_FILE=backup_$(date +%d%m%y).tgz
but would like something like
BACKUP_FILE=backup_(filename)_$(date +%d%m%y).tgz
to help with identification
any help is appreciated and my code is posted below.
#!/bin/bash
clear
VALID_PATH=0
BACKUP_FILE=backup_$(date +%d%m%y).tgz
BACKUP_DIR=.backup/
[[ ! -d $BACKUP_DIR ]] && mkdir -p $BACKUP_DIR
echo 1 Perform A Directory Backup
echo 2 Perform A File Backup
echo 3 Restore From Backup
echo 4 Exit Program
read OPTION
case $OPTION in
"1") echo You Selected Option 1
echo Please Enter The Directory You Wish To Backup
read SOURCE
while [[ $VALID_PATH -eq 0 ]]
do
if [[ -d "$SOURCE" ]]; then
VALID_PATH=1
BACKUP_FILE="$BACKUP_DIR""$BACKUP_FILE"
else
echo This Path Is Invalid
echo Please Enter A Valid Path
read SOURCE
fi
done
tar -czvf $BACKUP_FILE $SOURCE && echo "Backup Done" || echo "Backup Failed"
;;
"2") echo You Selected Option 2
echo Please Enter The File You Wish To Backup
read SOURCE
while [[ $VALID_PATH -eq 0 ]]
do
if [[ -f "$SOURCE" ]]; then
VALID_PATH=1
BACKUP_FILE="$BACKUP_DIR""$BACKUP_FILE"
else
echo This Path Is Invalid
echo Please Enter A Valid Path
read SOURCE
fi
done
tar -czvf $BACKUP_FILE $SOURCE && echo "Backup Done" || "Backup Failed"
;;
"3") echo You Selected Option 3
echo Contents Of The Backup Directory
ls $BACKUP_DIR
echo Please Enter The Name Of The File You Wish To Restore
read RESTORE_FILE
RESTORE_FILE="$BACKUP_DIR""$RESTORE_FILE"
while [[ $VALID_PATH -eq 0 ]]
do
if [[ -f $RESTORE_FILE ]]
then
VALID_PATH=1
else
echo This Path Is Invalid
echo Contents Of The Backup Directory
echo
ls "$BACKUP_DIR"
echo
echo Please Enter The Name Of The File You Wish To Restore
read RESTORE_FILE
RESTORE_FILE="$BACKUP_DIR""$RESTORE_FILE"
fi
done
echo
echo The File $RESTORE_FILE Will Be Used To Perform A Restore
echo
tar -xzvf $RESTORE_FILE
;;
"4") echo Goodbye
exit 0;;
esac
if [ $OPTION -eq 1 -o $OPTION -eq 2 ]; then
echo
echo SUCCESS!
echo
echo The Following Files Were Backed Up To $BACKUP_FILE
echo
tar -tf $BACKUP_FILE
elif [ $OPTION -eq 3 ]; then
echo
echo SUCCESS
echo
echo Your Files/Directories Were Restored
fi