W ake/ s Leep B ac k u p - 'wacht' USB Drive, RSYNCS und Kräfte ab
WSBKP ist ein Wrapper -Shell -Skript, um billige und einfache (teilweise) "Offline" -Beackups zu erstellen. Backups auf Dateiebene werden erstellt, indem Daten mit RSYNC auf eine externe Scheibe (USB) abgegeben werden. Wenn Sie die Festplatte nur online haben, können Sie Vorteile wie Datenisolation und (einige) Schutz vor Krypto -Schließfächern bieten.
Es soll unter Linux laufen und verwendet außer RSYNC HDParm und UdisScTL. Beachten Sie, dass nicht alle USB -Controller und Laufwerke garantiert funktionieren.
Bei der Ausführung sieht die Ausgabe so aus:
root@host: ~ # wsbkp.sh
[2020-01-01 17:58:20] Powering on drive (UUID=abc12345-1234-1234-1234-aaaabbbbcccc)...
- INFO: Resetting devices from /sys/bus/pci/drivers/ehci-pci...
- INFO: Resetting devices from /sys/bus/pci/drivers/ohci-pci...
[2020-01-01 17:58:28] Using backup device " /dev/sdb5 " (UUID=abc12345-1234-1234-1234-aaaabbbbcccc)
- INFO: Mounted " /dev/sdb5 " " /mnt/bkp "
* Command: " rsync -aA --info=flist0,name0,progress2,stats2 --progress --stats "
* Dir(s): " / "
* Target drive: " /dev/sdb5 " mounted on " /mnt/bkp " (UUID=abc12345-1234-1234-1234-aaaabbbbcccc)
* Exclude:
/proc/
/sys/
/lost+found/
/mnt/
/run/
/tmp/
[2022-03-26 17:58:28] Backup SOURCE DIR: " / " to DESTINATION: " /mnt/bkp/ "
* Syncing complete, listing " /mnt/bkp " ...
total 100
drwxr-xr-x 26 root root 4096 Mar 11 06:11 .
drwxr-xr-x 14 root root 4096 Apr 26 2021 ..
drwxrwxr-x 2 root root 4096 Jan 28 06:54 bin
drwxr-xr-x 4 root root 4096 Mar 11 06:15 boot
drwxr-xr-x 17 root root 4096 Mar 26 17:29 dev
drwxr-xr-x 194 root root 12288 Mar 26 14:30 etc
< -- CUT -- >
[2021-0-01 18:24:57] Done. Powering off
Wake/Sleep Backup
-----------------
SYNOPSIS: wake up usb drive, rsync, power off
USAGE: wsbkp.sh -[o|p][w|s][m|u][l][f] [dirs to backup]
OPTIONS: [-p]|[-o] power on | power off
[-w]|[-s] wakeup | sleep
[-m]|[-u] mount | umount
[-l] list drive info
[-d] skip dev detection
[dirs to backup] overwrites setting in script
Außerdem werden diese Argumente an RSYNC übergeben: --verbose , --dry-run , --force , --ignore-errors UND ALLE --delete Optionen.
Um aufzuräumen, indem zusätzliche Dires/Dateien auf DST gelöscht werden: ./wsbkp.sh --delete -y
Das Skript kann an jedem Ort platziert werden, z. B. usr/local/sbin '(empfohlen).
Stellen Sie sicher, dass RSYNC, HDPARM und UDISSCTL (UDISS2) installiert sind.
Das Zielsicherungsgerät sollte mit einem UUID, einem beschreibbaren Dateisystem und einem genügend freien Speicherplatz verfügbar sein.
Als root laufen. Es sollten keine Befehlszeilenargumente erforderlich sein, alle Optionen werden im Skript festgelegt. Hier wird eine Protokolldatei erstellt: '/var/log/wsbkp.log'.
Die unter "Nutzung" aufgeführten Optionen sind für den Fall gemeint, ob nach Abschluss der Sicherung das Laufwerk nach Abschluss der Sicherung nicht automatisch ausschalten kann. In diesem Fall können Sie manuell mit wsbkp.sh -o wiederholen
Eine andere Möglichkeit besteht darin, eine einmalige Sicherung eines anderen Quellverzeichnisses als konfiguriert zu machen:
wsbkp.sh /home/user/important /root/more_stuff
Um eine oder mehrere Dateien wiederherzustellen, führen Sie zuerst wsbkp.sh -p aus, um das Laufwerk und wsbkp.sh -m mit Strom zu versorgen.
Wenn Sie fertig sind, "trennen Sie" das Laufwerk mit wsbkp.sh -u zu UMOunt, dann wsbkp.sh -o um es auszuschalten.
1) Holen Sie sich einen Backup -Laufwerk:
Ausführen wsbkp.sh -l sollte Laufwerksdetails anzeigen oder einfach Blkid ausführen
root@host:~# blkid
/dev/sdb1: UUID="bc12345-1234-1234-1234-aaaabbbbcccc" BLOCK_SIZE="1024" TYPE="ext4" PARTUUID="ab1c2345-01"
2) Ändern Sie Einstellungen im Skript:
DST_UUID= " abc12345-1234-1234-1234-aaaabbbbcccc " # uuid of backup device
DST_MNT= " /mnt/bkp " # dst/target path
BKP_DIRS= " / " # dirs to backup
EXCL_DIRS= "
--exclude=/proc/
--exclude=/sys/
--exclude=/lost+found/
--exclude=/mnt/
--exclude=/run/
--exclude=/tmp/
"Stellen Sie sicher, dass DST_UUID auf das richtige UUID eingestellt ist.
Die Standardeinstellung besteht darin, das gesamte FileyStem ('/') zu sichern und einige Diren auszuschließen. Es ist auch möglich, ein oder mehrere Diren für die Sicherung anzugeben. Beispiel: BKP_DIRS="/etc/ /root/ /home/ /opt/ /usr/local/bin/"
3) Test und Zeitplan:
Führen Sie das Skript manuell aus, um die korrekten Einstellungen zu überprüfen. Bei Problemen OUT=/dev/stdout ausgelegt, um die Ausgabe von RSYNC (Fortschritt/Geschwindigkeit usw.) anzuzeigen.
Das Hinzufügen dieser RSYNC-Argumente kann auch nützlich sein: --verbose und/oder --dry-run .
Wenn alles in Ordnung ist, planen Sie das Skript beispielsweise jede Woche aus. Siehe Cron- und Systemd -Konfigurationen unten (kopieren/in Shell einfügen).
Führen Sie das Skript als Root aus:
echo ' 0 3 * * 1 root /usr/local/sbin/wsbkp.sh >/dev/null 2>&1 ' > /etc/cron.d/wsbkpUm als Systemd -Timer auszuführen, erstellen Sie zunächst Einheitsdateien:
cat << EOF >/lib/systemd/system/wsbkp.service
[Unit]
Description=WakeSleep backup
[Service]
Type=oneshot
ExecStart=/usr/local/sbin/wsbkp.sh
EOF
cat << EOF >/lib/systemd/system/wsbkp.timer
[Unit]
Description=WakeSleep backup scheduled to run every week
[Timer]
OnCalendar=weekly
[Install]
WantedBy=timers.target
EOF Dann aktivieren Timer: systemctl enable --now wsbkp.timer
Und schließlich load systemd: systemctl daemon-reload
Weitere Informationen finden Sie unter https://www.freedesktop.org/software/systemd/man/systemd.timer.html