diff --git a/pbs-zfs-daily.sh b/pbs-zfs-daily.sh index 38217b7..6b74d7c 100644 --- a/pbs-zfs-daily.sh +++ b/pbs-zfs-daily.sh @@ -3,31 +3,44 @@ #Requirements for Myiagi ultimate Backup ## Proxmox Source Host with only daily Autosnapshots, Proxmox Destination Host, Destination Public SSH Key on Source authorized-keys File, autostarting Proxmox Backupserver running on this PVE, zfs set com.sun:auto-snapshots=false on $ZFSTRGT, instaled checkzfs from https://github.com/bashclub/check-zfs-replication, check_mk Agent running on PVE -SOURCEHOST='192.168.50.200' # IP from Proxmox VE System to be backuped and replicated daily -SOURCEHOSTNAME='pve3' #Hostname of Proxmox VE System to be backuped and replicated daily +# Install Requiered Bashclub CheckZFS +wget -O /usr/local/bin/checkzfs https://raw.githubusercontent.com/bashclub/check-zfs-replication/main/checkzfs.py +chmod +x /usr/local/bin/checkzfs -ZFSROOT='rpool/data' #First Dataset/Datastoresourcepath from Proxmox VE System to be backuped and replicated daily -ZFSSECOND='rpool-hdd/data' #Optional second Dataset -ZFSTRGT='rpool-ssd1/200' #This pulling Machines Target ZFS Sourcepath -ZPOOLSRC=rpool #First Pool/Tank from Proxmox VE System to be backuped and replicated daily -ZPOOLDST=rpool #This pulling Machines Pool/Tank -ZPUSHTAG=bashclub:zsync +# Install Requiered Bashclub Zsync +wget -q --no-cache -O /usr/bin/bashclub-zsync https://git.bashclub.org/bashclub/zsync/raw/branch/dev/bashclub-zsync/usr/bin/bashclub-zsync +chmod +x /usr/bin/bashclub-zsync + +SOURCEHOST='192.168.50.202' # IP from Proxmox VE System to be backuped and replicated daily +SOURCEHOSTNAME='pve4' #Hostname of Proxmox VE System to be backuped and replicated daily + +ZFSROOT='rpool-hdd/data' #First Dataset/Datastoresourcepath from Proxmox VE System to be backuped and replicated daily +ZFSSECOND='' #Optional second Dataset +ZFSTRGT='rpool-hdd/202' #This pulling Machines Target ZFS Sourcepath +ZPOOLSRC=rpool-hdd #First Pool/Tank from Proxmox VE System to be backuped and replicated daily +ZPOOLDST=rpool-hdd #This pulling Machines Pool/Tank +ZPUSHTAG=bashclub:zsync-198-hdd ZPUSHMINKEEP=3 ZPUSHKEEP=14 ZPUSHLABEL=zsync-rz -ZPUSHFILTER="\"rz_pull|monthly|daily\"" #zpushlabel kommt automatisch mit +ZPUSHFILTER="" #zpushlabel kommt automatisch mit PBSHOST='192.168.50.199' #IP from your Proxmox Backupserver BACKUPSTORE=backup #Datastorename configured in your Proxmox VE System to be backuped and replicated daily BACKUPSTOREPBS=backup #Datastorename configured in your Proxmox Backup Server -BACKUPEXCLUDE='124,3021,3022,3023,3251,3252,3253,3254' #Machines to be excluded from Proxmox Backup +BACKUPEXCLUDE='99999' #Machines to be excluded from Proxmox Backup, must not be empty! +REPLEXCLUDE=$BACKUPEXCLUDE PRUNEJOB=$(ssh $PBSHOST proxmox-backup-manager prune-job list --output-format json-pretty | grep -m 1 "id" | cut -d'"' -f4) SSHPORT='22' #SSH Port, usually default 22 internally MAINTDAY=0 -# ssh root@$SOURCEHOST zfs set $ZPUSHTAG=subvols $ZFSROOT +#Mark Source for full Backup with Zsync + +ssh root@$SOURCEHOST zfs set $ZPUSHTAG=all $ZFSROOT +ssh root@$SOURCEHOST zfs set $ZPUSHTAG=all $ZFSSECOND + # Schleife für Excludes echo "target=$ZFSTRGT" > /etc/bashclub/$SOURCEHOST.conf echo "source=root@$SOURCEHOST" >> /etc/bashclub/$SOURCEHOST.conf @@ -41,13 +54,12 @@ echo "zfs_auto_snapshot_label=$ZPUSHLABEL" >> /etc/bashclub/$SOURCEHOST.conf /usr/bin/bashclub-zsync -d -c /etc/bashclub/$SOURCEHOST.conf # So one Day has 1440 Minutes, so we go condition Yellow on 1500 -/usr/local/bin/checkzfs --source $SOURCEHOST --replicafilter "$ZFSTRGT/" --filter "#$ZFSROOT/|#$ZFSSECOND/" --threshold 1500,2000 --output checkmk --prefix pull-$(hostname)> /tmp/cmk_tmp.out && ( echo "<<>>" ; cat /tmp/cmk_tmp.out ) > /tmp/90000_checkzfs +/usr/local/bin/checkzfs --source $SOURCEHOST --replicafilter "$ZFSTRGT/" --filter "#$ZFSROOT/|#$ZFSSECOND/" --threshold 1500,2000 --output checkmk --prefix pull-$(hostname):$ZPUSHTAG> /tmp/cmk_tmp.out && ( echo "<<>>" ; cat /tmp/cmk_tmp.out ) > /tmp/90000_checkzfs -scp /tmp/90000_checkzfs $SOURCEHOST:/var/lib/check_mk_agent/spool +scp /tmp/90000_checkzfs $SOURCEHOST:/var/lib/check_mk_agent/spool/90000_checkzfs_$SOURCEHOST_$ZPOOLSRC ### - if [ $(date +%u) == $MAINTDAY ]; then echo "MAINTENANCE" @@ -89,6 +101,7 @@ scp /tmp/90000_checkpbs root@$SOURCEHOST:/var/lib/check_mk_agent/spool #doing updates without regeret -apt dist-upgrade -y -#shutdown now +#/root/02pull32nas ##PVE32 NAS Replika mit Report auf pve32 + +apt dist-upgrade -y