#!/bin/bash set -e echo "Date_start: `date +%Y-%m-%d-%H-%M-%S`" # ### Vars ### # (1970 ) day=$((`date +%s` / (60*60*24))) # dayexp=21 # path="/" # ( ) spath="/snapshots/backup_script/" # dpath="/mnt/backup/root/" ### Delete Old Backups ### # find $dpath -maxdepth 1 -type d -mtime +$dayexp -exec rm -rf {} \; ### Check exist snapshot ### # , , if (( "`btrfs subvolume list $path | grep backup_script |wc -l`" > 0 )) then echo "Warning: Snapshot exist, deleting" btrfs subvolume delete $spath fi ### Create snapshot ### # btrfs subvolume snapshot $path $spath ### Rsync ### # rsync -aAXv $spath $dpath$day ### Delete snapshot ### # btrfs subvolume delete $spath echo "Backup succesful complete" echo "Date_end: `date +%Y-%m-%d-%H-%M-%S`" exit 0
#!/bin/bash set -e echo "Date_start: `date +%Y-%m-%d-%H-%M-%S`" ### Vars ### day=$((`date +%s` / (60*60*24))) dayexp=14 path="/" spath="/snapshots/" ### Delete Old Backups / Check existing snapshot ### # , btrfs subvolume list $path |grep auto |sed -e '1,$ s/.*_//g'| while read ONE_OF_LIST do if [[ "$ONE_OF_LIST" -lt "$day - $dayexp" ]] then echo "remove: $spath"auto_"$ONE_OF_LIST" btrfs subvolume delete $spath"auto_"$ONE_OF_LIST fi if [[ "$ONE_OF_LIST" -eq "$day" ]] then echo "Eroor: snapshot auto_$ONE_OF_LIST exist. Stop script execution." exit 1 fi done ### Create snapshot ### btrfs subvolume snapshot $path $spath"auto_"$day ### End ### echo "Snapshot succesful created" echo "Date_end: `date +%Y-%m-%d-%H-%M-%S`" exit 0
#!/bin/bash set -e echo "Date_start: `date +%Y-%m-%d-%H-%M-%S`" ### Vars ### day=$((`date +%s` / (60*60*24))) dayexp=21 # LVM path="/dev/virt_image_array/win_home_system" spath="/dev/virt_image_array/backup_lvm1" dpath="/mnt/backup/lvm1/" ### Delete Old Backups ### find $dpath -maxdepth 1 -type f -mtime +$dayexp -exec rm -rf {} \; ### Check exist snapshot ### # , , if (( "`ls /dev/virt_image_array |grep backup_lvm1|wc -l`" > 0 )) then echo "Warning: Snapshot exist, deleting" lvremove --autobackup y -f $spath fi ### Create snapshot ### # , , . 10 Gb. lvcreate --size 10G --snapshot --name backup_lvm1 $path # echo #echo "y"| lvcreate --size 10G -A y --snapshot --name backup_lvm1 $path ### DD ### # bs, 16M dd if=$spath of=$dpath$day bs=16M ### Delete snapshot ### lvremove --autobackup y -f $spath echo "Backup succesful complete" echo "Date_end: `date +%Y-%m-%d-%H-%M-%S`" exit 0
20 01 * * 1 /usr/bin/backup_root.sh >> /var/log/backup_root.log 2>&1 50 01 * * 1 /usr/bin/backup_lvm1.sh >> /var/log/backup_lvm.log 2>&1 20 01 * * * /usr/bin/snapshot_root.sh >> /var/log/snapshot_root.log 2>&1
Source: https://habr.com/ru/post/211917/