Portál AbcLinuxu, 5. listopadu 2025 11:43
Tento script používám pro zálohování, doufám, že to třeba někomu pomůže a poslouží jako inspirace
#!/bin/bash
#BACKUP_DEVICE=""
BACKUP_POINT="/data"
BACKUP_PATH="$BACKUP_POINT/backup"
datum=`/bin/date +"%Y-%m-%d"`
BACKUP_DIR="$BACKUP_PATH/$datum"
BACKUP_FULL_DATE="$BACKUP_PATH/full-backup"
BACKUP_NEWER=""
DAY_OF_WEEK=`/bin/date +%u`
DO_FULL_BACKUP=""
if [ "$1" = "full" ]; then
DO_FULL_BACKUP="-full"
else
if [ "$DAY_OF_WEEK" = "7" ]; then
DO_FULL_BACKUP="-full"
else
if [ -f $BACKUP_FULL_DATE ]; then
DO_FULL_BACKUP=""
else
DO_FULL_BACKUP="-full"
fi
fi
fi
if [ "$DO_FULL_BACKUP" = "-full" ]; then
/bin/date +%D > $BACKUP_FULL_DATE
else
DATE=`/bin/cat $BACKUP_FULL_DATE`
BACKUP_NEWER="--newer "$DATE""
fi
/bin/mkdir $BACKUP_DIR$DO_FULL_BACKUP
/bin/tar -czv $BACKUP_NEWER -f $BACKUP_DIR$DO_FULL_BACKUP/root.tgz --exclude=/data/* --exclude=/proc/* / > $BACKUP_DIR$DO_FULL_BACKUP/root.filelist 2> $BACKUP_DIR$DO_FULL_BACKUP/ro
ot.errors
#clean old backups
cd $BACKUP_PATH
#delete incremental backups older than 14 days
/usr/bin/find -maxdepth 1 -ctime +14 -type d ! -iname '*-full' -exec rm -rf '{}' \;
#delete full backups older than 2 months
/usr/bin/find -maxdepth 1 -ctime +62 -type d -iname '*-full' -exec rm -rf '{}' \;
#rsync to casablanca
/usr/bin/rsync -rltzu4v --delete --delete-excluded --rsh="/usr/bin/ssh -l backup" /data/backup/* backup-machine:~/backup
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.