Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- FILENAME="backup_`date +%Y-%m-%d`"
- DESTPATH="/media/sda3/backup"
- if find $DESTPATH -maxdepth 1 -mtime -27 -name backup_monthly.filelist|wc -l
- then #если месячный бекап старше 28 суток
- rm $DESTPATH/backup_now.filelist #удаляем снимок для инкремента, чтобы создать
- чистый архив и новый снимок
- sudo nice -n 15 tar cvzSf $DESTPATH/$FILENAME.monthly.tar.gz
- --ignore-failed-read --one-file-system
- --listed-incremental=$DESTPATH/backup_now.filelist
- --exclude-from=/usr/local/sbin/exclusions.list --totals /
- mv $DESTPATH/backup_now.filelist $DESTPATH/backup_monthly.filelist
- sudo chmod 666 $DESTPATH/$FILENAME.monthly.tar.gz
- find $DESTPATH -maxdepth 1 -name \*.monthly.tar.gz -mtime +60 -exec rm -f {}
- \; #удаляем старые бекапы
- find $DESTPATH -maxdepth 1 -name \*.monthly.filelist -mtime +60 -exec rm -f {}
- \;
- fi
- if find $DESTPATH -maxdepth 1 -mtime -6 -name backup_weekly.filelist|wc -l
- then #если еженедельный бекап старше 7 суток
- cp $DESTPATH/backup_monthly.filelist $DESTPATH/backup_now.filelist
- sudo nice -n 15 tar cvzSf $DESTPATH/$FILENAME.weekly.tar.gz
- --ignore-failed-read --one-file-system
- --listed-incremental=$DESTPATH/backup_now.filelist
- --exclude-from=/usr/local/sbin/exclusions.list --totals /
- mv $DESTPATH/backup_now.filelist $DESTPATH/backup_weekly.filelist
- sudo chmod 666 $DESTPATH/$FILENAME.weekly.tar.gz
- find $DESTPATH -maxdepth 1 -name \*.weekly.tar.gz -mtime +27 -exec rm -f {}
- \; #удаляем старые бекапы
- find $DESTPATH -maxdepth 1 -name \*.weekly.filelist -mtime +27 -exec rm -f {}
- \;
- fi
- if find $DESTPATH -maxdepth 1 -mtime -0 -name backup_daily.filelist|wc -l
- then #если ежедневный бекап в последние сутки не делался
- cp $DESTPATH/backup_weekly.filelist $DESTPATH/backup_now.filelist
- sudo nice -n 15 tar cvzSf $DESTPATH/$FILENAME.daily.tar.gz --ignore-failed-read
- --one-file-system --listed-incremental=$DESTPATH/backup_now.filelist
- --exclude-from=/usr/local/sbin/exclusions.list --totals /
- mv $DESTPATH/backup_now.filelist $DESTPATH/backup_daily.filelist
- sudo chmod 666 $DESTPATH/$FILENAME.daily.tar.gz
- find $DESTPATH -maxdepth 1 -name \*.daily.tar.gz -mtime +6 -exec rm -f {} \;
- #удаляем старые бекапы
- find $DESTPATH -maxdepth 1 -name \*.daily.filelist -mtime +6 -exec rm -f {}
- \;
- fi
- if [ "$1" = "--manual" ]; then #ручной полный бекап
- sudo tar cvzSf $DESTPATH/$FILENAME.tar.gz --ignore-failed-read
- --one-file-system --exclude-from=/usr/local/sbin/exclusions.list --totals /
- fi
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement