Portál AbcLinuxu, 2. května 2025 08:35
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.