add zfs
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Grégory Lebreton 2025-09-29 13:56:29 +02:00
parent 8b423f76da
commit ea2df719d8
4 changed files with 139 additions and 8 deletions

View File

@ -1,30 +1,30 @@
# Sauvegarder des données # Sauvegarder des données
1. Lister les partitions: 1. Lister les partitions:
``` { .copy } ``` {.bash .copy }
lsblk lsblk
``` ```
2. Identifier la partition contenant les fichiers à sauvegarder 2. Identifier la partition contenant les fichiers à sauvegarder
3. Monter la partition 3. Monter la partition
``` { .copy } ``` {.bash .copy }
mkdir /mnt/nom_du_dossier mkdir /mnt/nom_du_dossier
mount /dev/sdXy /mnt/nom_du_dossier mount /dev/sdXy /mnt/nom_du_dossier
``` ```
4. Cibler le dossier à sauvegarder 4. Cibler le dossier à sauvegarder
``` { .copy } ``` {.bash .copy }
ls /mnt/nom_du_dossier ls /mnt/nom_du_dossier
``` ```
5. Créer le dossier de réception sur le serveur de backup: 5. Créer le dossier de réception sur le serveur de backup:
``` { .copy } ``` {.bash .copy }
ssh -p 5555 bellinuxien@192.168.1.75 ssh -p 5555 bellinuxien@192.168.1.75
mkdir /home/bellinuxien/BACKUPS/nom-de-dossier mkdir /home/bellinuxien/BACKUPS/nom-de-dossier
exit exit
``` ```
6. Copier le dossier utilisateur vers le dossier sur le serveur de backup: 6. Copier le dossier utilisateur vers le dossier sur le serveur de backup:
``` { .copy } ``` {.bash .copy }
rsync -ah -e "ssh -p 5555" /mnt/nom_du_dossier bellinuxien@192.168.1.75:/home/bellinuxien/BACKUPS/nom_du_dossier/ --info=progress2 && sync rsync -ah -e "ssh -p 5555" /mnt/nom_du_dossier bellinuxien@192.168.1.75:/home/bellinuxien/BACKUPS/nom_du_dossier/ --info=progress2 && sync
``` ```
7. Rapatrier les fichiers du serveur de backup vers une machine: 7. Rapatrier les fichiers du serveur de backup vers une machine:
``` { .copy } ``` {.bash .copy }
rsync -ah -e "ssh -p 5555" bellinuxien@192.168.1.75:/home/bellinuxien/BACKUPS/nom_du_dossier/ /mnt/nom_du_dossier --info=progress2 && sync rsync -ah -e "ssh -p 5555" bellinuxien@192.168.1.75:/home/bellinuxien/BACKUPS/nom_du_dossier/ /mnt/nom_du_dossier --info=progress2 && sync
``` ```

View File

@ -3,11 +3,13 @@
- [ssh](ssh.md) - [ssh](ssh.md)
- [screen](screen.md) - [screen](screen.md)
- [backup](backup.md) - [backup](backup.md)
- [rsync](backup.md) - [rsync](rsync.md)
- [nmcli](nmcli.md) - [nmcli](nmcli.md)
- [chroot](chroot.md)
- [lvm](lvm.md) - [lvm](lvm.md)
- [Monter une partition](mount.md) - [Monter une partition](mount.md)
- [Monter et gérer un RAID](raid.md)
- [Système de fichier ZFS](zfs.md)
- [chroot](chroot.md)
- [read](read.md), pour permettre à l'utilisateur d'interagir avec un script (user prompt / user input) - [read](read.md), pour permettre à l'utilisateur d'interagir avec un script (user prompt / user input)
- [heredoc](heredoc.md), le fameux `EOF`, pour afficher du contenu sur plusieurs lignes - [heredoc](heredoc.md), le fameux `EOF`, pour afficher du contenu sur plusieurs lignes
- [listes et dictionnaires avec Bash](bash-lists.md) - [listes et dictionnaires avec Bash](bash-lists.md)

64
docs/divers/cmd/rsync.md Normal file
View File

@ -0,0 +1,64 @@
# RSYNC (synchronisation de répertoires / fichiers)
## Synthaxe de base
``` {.bash .copy }
rsync [options] source destination
```
## Utilisation locale
1. Copier un fichier:
``` {.bash .copy }
rsync fichier.txt /home/user/backup/
```
2. Copier le contenu d'un dossier:
``` {.bash .copy }
rsync -av /home/user/docs/ /home/user/backup/
```
3. Copier un dossier et son contenu:
``` {.bash .copy }
rsync -av /home/user/docs /home/user/backup/
```
## Utilisation distante (via SSH)
1. Serveur distant vers machine locale:
``` {.bash .copy }
rsync -avzP user@serveur:/home/user/docs/ /home/user/backup/
```
2. Machine local vers serveur distant:
``` {.bash .copy }
rsync -avzP /home/user/backup/ user@serveur:/home/user/docs/
```
## Les options
``` {.bash .copy }
-a # archive (conserve permissions, liens, dates…)
-g # préserve le groupe
-l # copie les liens symboliques
-o # préserve le propriétaire (nécéssite root)
-p # préserver les permissions
-u # ignore la copie des fichiers plus récents sur la destination
-v # verbose (affiche les détails)
-z # compresse les données lors du transfert
-v # mode verbose pour afficher les informations de la copie
-c # utilise la somme de contrôle pour vérifier si il faut copier le fichier ou pas
-P # montre la progression + reprend un transfert interrompu
--exclude= # exclure les fichiers de la copie
--delete # supprime dans la destination les fichiers absents de la source
--max-size # indique la taille maximale des fichiers à copier
--dry-run # test la commande sans rien copier
--progress # affiche une barre de progréssion
-e ssh # passe par SSH (utile pour le réseau)
-e "ssh -p 2222" # passe les paramètres SSH
```
## Plus d'informations
- [Linux.die.net](https://linux.die.net/man/1/rsync)
- [Wiki ubuntu](https://doc.ubuntu-fr.org/rsync)

65
docs/divers/cmd/zfs.md Normal file
View File

@ -0,0 +1,65 @@
# Système de fichier ZFS
## Créer un système de fichier ZFS
- Créer une pool et son dataset
``` {.bash .copy }
sudo zpool create tank /dev/sdb
sudo zfs create tank/data
```
??? note "explications"
tank → pool name
/dev/sdb → target disk
## Redondance (RAID)
- Créer une pool ZFS sur un disk:
``` {.bash .copy }
sudo zpool create tank /dev/sdb
```
- Ajouter des disks:
``` {.bash .copy }
# Mirror (like RAID1)
sudo zpool create tank mirror /dev/sdb /dev/sdc
# RAID-Z1 (like RAID5, 1 disk fault tolerance)
sudo zpool create tank raidz1 /dev/sdb /dev/sdc /dev/sdd
# RAID-Z2 (2 disk fault tolerance)
sudo zpool create tank raidz2 /dev/sdb /dev/sdc /dev/sdd /dev/sde
```
- Créer un dataset:
``` {.bash .copy }
sudo zfs create tank/data
```
## Sauvegarder (snapshots)
- Prendre Snapshot daté:
``` {.bash .copy }
# Snapshot name includes the date
sudo zfs snapshot tank/data@$(date +%Y-%m-%d)
```
- Cloner un snpashot:
``` {.bash .copy }
sudo zfs clone tank/data@before-upgrade tank/data_clone
```
- Restorer un snapshot (rollback):
``` {.bash .copy }
sudo zfs rollback tank/data@before-upgrade
```
- Supprimer un snapshot:
``` {.bash .copy }
sudo zfs destroy tank/data@before-upgrade
```
## Commandes
``` {.bash .copy }
zfs list -t snapshot
```