Advertisement
ZhenyaDudko

Untitled

Nov 26th, 2022
632
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 0.89 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. BACKUP_DIR=""
  4.  
  5. for DIR in $(find /home/$USER/ -type d -name 'Backup-*')
  6. do
  7.   FILE_DATE=${DIR: -10}
  8.   if [[ ! $DIR == "/home/$USER/Backup-$FILE_DATE" || ! $FILE_DATE =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]
  9.   then
  10.     continue
  11.   fi
  12.   if [[ $BACKUP_DIR == "" || ${BACKUP_DIR: -10} < $FILE_DATE ]]
  13.   then
  14.     BACKUP_DIR=$DIR
  15.   fi
  16. done
  17.  
  18. if [[ $BACKUP_DIR == "" ]]
  19. then
  20.   echo "No backup found"
  21.   exit
  22. fi
  23.  
  24. if [[ ! -d /home/$USER/restore ]]
  25. then
  26.   mkdir /home/$USER/restore
  27. fi
  28.  
  29. for file in $(find $BACKUP_DIR/*)
  30. do
  31.   FILE_NAME=${file#$BACKUP_DIR/}
  32.   FILE_NAME_ONLY=$(echo $FILE_NAME | awk -F/ '{print $NF}')
  33.   FILE_PATH=${FILE_NAME%$FILE_NAME_ONLY}
  34.   if [[ $FILE_NAME =~ .[0-9]{4}-[0-9]{2}-[0-9]{2} ]]
  35.   then
  36.     continue
  37.   fi
  38.   echo $file
  39.   if [[ -f $file ]]
  40.   then
  41.     cp $file /home/$USER/restore/$FILE_PATH
  42.   else
  43.     mkdir /home/$USER/restore/$FILE_NAME
  44.   fi
  45. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement