Advertisement
Guest User

backup

a guest
Dec 25th, 2010
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.65 KB | None | 0 0
  1. #!/bin/bash
  2. FILENAME="backup_`date +%Y-%m-%d`"
  3. DESTPATH="/media/sda3/backup"
  4.  
  5. if find $DESTPATH -maxdepth 1 -mtime -27 -name backup_monthly.filelist|wc -l
  6. then #если месячный бекап старше 28 суток
  7.     rm $DESTPATH/backup_now.filelist #удаляем снимок для инкремента, чтобы создать
  8. чистый архив и новый снимок
  9.     sudo nice -n 15 tar cvzSf $DESTPATH/$FILENAME.monthly.tar.gz
  10. --ignore-failed-read --one-file-system
  11. --listed-incremental=$DESTPATH/backup_now.filelist
  12. --exclude-from=/usr/local/sbin/exclusions.list --totals /
  13.     mv $DESTPATH/backup_now.filelist $DESTPATH/backup_monthly.filelist
  14.     sudo chmod 666 $DESTPATH/$FILENAME.monthly.tar.gz
  15.     find $DESTPATH -maxdepth 1 -name \*.monthly.tar.gz -mtime +60 -exec rm -f {}
  16. \; #удаляем старые бекапы
  17.     find $DESTPATH -maxdepth 1 -name \*.monthly.filelist -mtime +60 -exec rm -f {}
  18. \;
  19. fi
  20. if find $DESTPATH -maxdepth 1 -mtime -6 -name backup_weekly.filelist|wc -l
  21. then #если еженедельный бекап старше 7 суток
  22.     cp $DESTPATH/backup_monthly.filelist $DESTPATH/backup_now.filelist
  23.     sudo nice -n 15 tar cvzSf $DESTPATH/$FILENAME.weekly.tar.gz
  24. --ignore-failed-read --one-file-system
  25. --listed-incremental=$DESTPATH/backup_now.filelist
  26. --exclude-from=/usr/local/sbin/exclusions.list --totals /
  27.     mv $DESTPATH/backup_now.filelist $DESTPATH/backup_weekly.filelist
  28.     sudo chmod 666 $DESTPATH/$FILENAME.weekly.tar.gz
  29.     find $DESTPATH -maxdepth 1 -name \*.weekly.tar.gz -mtime +27 -exec rm -f {}
  30. \; #удаляем старые бекапы
  31.     find $DESTPATH -maxdepth 1 -name \*.weekly.filelist -mtime +27 -exec rm -f {}
  32. \;
  33. fi
  34. if find $DESTPATH -maxdepth 1 -mtime -0 -name backup_daily.filelist|wc -l
  35. then #если ежедневный бекап в последние сутки не делался
  36.     cp $DESTPATH/backup_weekly.filelist $DESTPATH/backup_now.filelist
  37.     sudo nice -n 15 tar cvzSf $DESTPATH/$FILENAME.daily.tar.gz --ignore-failed-read
  38. --one-file-system --listed-incremental=$DESTPATH/backup_now.filelist
  39. --exclude-from=/usr/local/sbin/exclusions.list --totals /
  40.     mv $DESTPATH/backup_now.filelist $DESTPATH/backup_daily.filelist
  41.     sudo chmod 666 $DESTPATH/$FILENAME.daily.tar.gz
  42.     find $DESTPATH -maxdepth 1 -name \*.daily.tar.gz -mtime +6 -exec rm -f {} \;
  43. #удаляем старые бекапы
  44.     find $DESTPATH -maxdepth 1 -name \*.daily.filelist -mtime +6 -exec rm -f {}
  45. \;
  46. fi
  47. if [ "$1" = "--manual" ]; then #ручной полный бекап
  48.     sudo tar cvzSf $DESTPATH/$FILENAME.tar.gz --ignore-failed-read
  49. --one-file-system --exclude-from=/usr/local/sbin/exclusions.list --totals /
  50. fi
  51. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement