gedankensplitter/backupNAS.md
2023-07-22 22:56:17 +02:00

94 lines
3.6 KiB
Markdown

---
keywords:
- IT
-
---
## Backup odroid NAS
### onsite backup
```
/dev/mmcblk0
http://www.fsarchiver.org/Main_Page
Full Backup, wöchentlich
dd if=/dev/mmcblk0 bs=1M |pv | dd of=$backupDir/backup.img
MBR/EBR backup
sudo apt-get install sfdisk
sudo sfdisk -d /dev/mmcblk0 > $backupDir/partition_table.txt
sudo sfdisk /dev/mmcblk0 < $backupDir/partition_table.txt
#backup bootloader
#get first partition sector
sudo sfdisk -l /dev/mmcblk0
#backup bootloader
sudo dd if=/dev/mmcblk0 of=$backupDir/bootloader.bin bs=512 count=$BeginSektor
#restore bootloader
sudo dd if=$backupDir/bootloader.bin of=/dev/mmcblk0 bs=512 skip=1 seek=1
#Bootstrap restore
sudo dd if=$backupDir/bootloader.bin of=/dev/mmcblk0 bs=446 count=1
#backup ext4 partition while mounted
$ sudo fsarchiver -o -v -A -j 4 savefs $backupDir/partition_2.fsa /dev/mmcblk0p1
```
### offline backup
```
# copy 'empty' blocks to preserve partition table, bootloader, second bootloader..
sudo dd if=/dev/mmcblk0 of=/dev/sdc bs=512 count=8192
# backup partition table separately
sudo sfdisk -d /dev/mmcblk0 > partition_table.txt
# restore partition table to match partitions uuids, patch different partitions size! (like whole sectors minus beginning sector)
sudo sfdisk /dev/mmcblk0 < partition_table.txt
#restore root partition after offsite image backup
sudo partclone.ext4 -d2 -b -s /dev/loop0p1 -o /dev/sdc1
```
/etc
-inkrementelles Backup
-merge Backups (welche Kriterien)
-verschlüsselt (ssl keys)
http://dar.linux.free.fr/doc/mini-howto/dar-differential-backup-mini-howto.en.html#the-backup-strategy
dar -c /mnt/backup/etc_initial --compression=lzo -s 50M -M -R /etc --hash sha1 --user-comment "%d: %c" -Z "*.gz" -Z "*.bz2" -Z "*.zip" -Z "*.png"
dar -C /mnt/backup/etc_`date -I`.cat /mnt/backup/etc_initial --user-comment "%d: %c"
dar -c /mnt/backup/etc_initial --compression=lzo -s 50M -M -R /etc --hash sha1 --user-comment "%d: %c" -Z "*.gz" -Z "*.bz2" -Z "*.zip" -Z "*.png" -A /mnt/backup/etc_initial
/var/*
-incrementelles Backup
-merge Backups (welche Kriterien)
-verschlüsselt (ssl keys)
/home/*
-syncthing
--Fullbackup
--täglich Datenbank und config sichern
-verschlüsselt (ssl keys)
/root
--Fullbackup
-verschlüsselt (ssl keys)
Nextcloud
--täglich Datenbank Dump und cloud_data
-verschlüsselt
## duplicati backend
### client
the data source aka client holds a local database to be fast. this db does not get copied to the remote target. the remote target only contains `dlist.zip.aes`, `dindex.zip.aes` and `dblock.zip.aes` files.
`duplicati-cli repair {filepath}`
### .bashrc
```
alias hddapm='for dev in /dev/sd?; do echo -n "$dev : "; hdparm -B $dev | grep -E "APM"; done; echo ""'
alias hddlongresult='for dev in /dev/sd?; do echo -n "$dev : "; smartctl -a -n standby $dev | grep "# 1"; done; echo "";'
alias hddlongtest='for dev in /dev/sd?; do echo -n "$dev : "; smartctl -t long $dev | grep "complete after" ; done; echo ""'
alias hddspindown='for dev in /dev/sd?; do echo -n "$dev : "; hdparm -y $dev; done;'
alias hddstatus='for dev in /dev/sd?; do echo -n "$dev : "; smartctl -i -n standby $dev | grep -E "ACTIVE|IDLE|STANDBY"; done; echo ""'
alias l='ls $LS_OPTIONS -lA'
alias ll='ls $LS_OPTIONS -l'
alias ls='ls $LS_OPTIONS'
alias lsuuid='lsblk -o +uuid,name'
alias scrubstatus='for dev in /srv/dev-disk-by-label*; do echo -n "$dev : "; btrfs scrub status $dev | grep -E "Status|ETA"; done; echo ""'
alias smartstatus='for dev in /dev/sd?; do echo -n "$dev : "; smartctl -a -n standby $dev | grep "in_progress" ; done; echo ""'
alias snapraidscrub='snapraid -o 10 -p 100 scrub'
alias update='apt update && apt -t bullseye-backports dist-upgrade'
```