W ake / s leep b ac k u p - «réveille» le lecteur USB, les ons et les pouvoirs
WSBKP est un script de shell wrapper pour créer des sauvegardes «hors ligne» bon marché et faciles (partiellement). Les sauvegardes de niveau de fichier sont créées en faisant face aux données sur un disque externe (USB) à l'aide de RSYNC. Avoir le disque en ligne uniquement lors de la sauvegarde pourrait offrir des avantages comme l'isolement des données et (une partie) de la protection contre les casiers cryptographiques.
Il est destiné à fonctionner sur Linux et en plus de RSYNC utilise HDPARM et UDISKSCTL. Notez que tous les contrôleurs et disques USB ne sont pas garantis pour fonctionner.
Lorsqu'il est exécuté, la sortie ressemble à ceci:
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
De plus, ces args sont transmis à RSync: --verbose , --dry-run , --force , --ignore-errors et toutes les options --delete .
Pour nettoyer en supprimant des réseaux / fichiers supplémentaires sur DST, exécutez: ./wsbkp.sh --delete -y
Le script peut être placé dans n'importe quel endroit, par exemple '/ usr / local / sbin' (recommandé).
Assurez-vous que RSYNC, HDPARM et UDISKSCTL (UDISKS2) sont installés.
Le périphérique de sauvegarde cible doit être disponible avec un système de fichiers UUID, un espace de disque gratuit.
Exécutez comme racine. Aucun argument de ligne de commande ne doit être nécessaire, toutes les options sont définies dans le script. Un fichier journal sera créé ici: '/var/log/wsbkp.log'.
Les options répertoriées sous «utilisation» sont destinées au cas où EG, le lecteur ne parvient pas à s'éteindre automatiquement une fois la sauvegarde terminée. Si cela se produit, réessayez manuellement avec wsbkp.sh -o
Une autre option consiste à faire une sauvegarde unique d'un répertoire source différent de celui configuré:
wsbkp.sh /home/user/important /root/more_stuff
Pour restaurer un ou plusieurs fichiers, exécutez d'abord wsbkp.sh -p pour alimenter le lecteur et wsbkp.sh -m pour le monter.
Une fois terminé, "déconnectez" le lecteur avec wsbkp.sh -u à umount puis wsbkp.sh -o pour l'alimenter.
1) Obtenez UUID du lecteur de sauvegarde:
L'exécution wsbkp.sh -l devrait afficher les détails du lecteur, ou simplement exécuter Blkid
root@host:~# blkid
/dev/sdb1: UUID="bc12345-1234-1234-1234-aaaabbbbcccc" BLOCK_SIZE="1024" TYPE="ext4" PARTUUID="ab1c2345-01"
2) Modifier les paramètres à l'intérieur du script:
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/
"Assurez-vous que DST_UUID est défini sur le bon UUID.
La valeur par défaut consiste à sauvegarder l'ensemble du fichier ('/') et à exclure certains DIRS. Il est également possible de spécifier un ou plusieurs réseaux pour sauvegarder. Exemple: BKP_DIRS="/etc/ /root/ /home/ /opt/ /usr/local/bin/"
3) Tester et calendrier:
Exécutez le script manuellement pour vérifier les paramètres corrects. Dans le cas des problèmes énoncés OUT=/dev/stdout pour afficher la sortie de RSYNC (progression / vitesse, etc.).
L'ajout de ces args rsync peut également être utile: --verbose et / ou --dry-run .
Si tout va bien, planifiez le script à exécuter chaque semaine par exemple. Voir Cron et Systemd Configs ci-dessous (copier / coller sur shell).
Exécutez le script comme root:
echo ' 0 3 * * 1 root /usr/local/sbin/wsbkp.sh >/dev/null 2>&1 ' > /etc/cron.d/wsbkpPour s'exécuter en tant que Timer SystemD, créez d'abord des fichiers unitaires:
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 Puis activer la minuterie: systemctl enable --now wsbkp.timer
Et enfin Recharger Systemd: systemctl daemon-reload
Pour plus de détails, voir https://www.freedesktop.org/software/systemd/man/systemd.timer.html