# Disques et partages

# Monter un partage NFS

Pour accéder à un partage NFS, il faut le "monter", comme un disque local.

## Prérequis

Pour monter un partage NFS, comme pour n'importe quel montage, il va falloir définir ou créer un dossier où monter le partage NFS.

Installer le paquet <a>nfs-common</a>

## Méthodes de montage

### Via un gestionnaire de fichiers

La plupart des gestionnaires de fichiers (environnement graphique) permettent d'accéder à un partage NFS via une url dans leur barre d'adresse :

```
nfs://ip_ou_nom_du_serveur/point_de_montage
```

### Modifier le fichier /etc/fstab

Pour un montage automatique au démarrage du système, le plus simple est d'éditer le fichier `/etc/fstab`.

Avant de modifier ce fichier, il est nécessaire de créer le dossier qui servira de point de montage par exemple avec :

```bash
sudo mkdir /mon_point_de_montage
```

Puis éditer le fichier avec par exemple :

```bash
sudo nano /etc/fstab
```

Y ajouter à la fin, sans modifier ce qui est déjà présent :

```bash
192.168.0.10:/<Dossier_point_de_montage>/ /media/NFS nfs defaults,_netdev,bg
```

Des options peuvent êtres ajouté à la fin :

- `_netdev` Le système de fichiers est sur une machine qui nécessite un accès réseau. Cela indique au système d'attendre que la configuration réseau soit active avant de procéder au montage.
- `bg` Permet de ne pas bloquer le démarrage du client si le serveur n'est pas opérationnel. Les tentatives de montage sont relancées en arrière-plan.
- `auto` Monte automatiquement le système de fichiers au démarrage (option activée par défaut avec `defaults`).
- `noauto` Empêche le montage automatique au démarrage. Le montage devra être fait manuellement.
- `user` Autorise un utilisateur non-root à monter et démonter le système de fichiers.
- `nouser` Seul root peut monter le système de fichiers (comportement par défaut).
- `rw` Monte le partage en lecture/écriture.
- `ro` Monte le partage en lecture seule.
- `defaults` Ensemble d'options par défaut (rw, suid, dev, exec, auto, nouser, async).
- `nofail` N'interrompt pas le démarrage si le montage échoue.
- `soft` En cas de problème avec le serveur NFS, les opérations échouent rapidement avec une erreur.
- `hard` (par défaut) Le client continue d'essayer indéfiniment si le serveur ne répond pas.
- `timeo=<valeur>` Définit le temps d'attente (timeout) avant de considérer qu'une requête a échoué.
- `retrans=<valeur>` Nombre de tentatives avant abandon (utile avec `soft`).

#### Appliquer le fichier fstab

Pour monter tout ce qui se trouve dans le fichier fstab :

```bash
sudo mount -a
```

Pour remonter tout ce qui se trouve dans le fichier fstab (sans démontage complet, permet d'actualiser à partir du fichier fstab) :

```bash
sudo mount -o remount -a
```

Pour démonter un partage (ou n'importe quel montage) :

```
sudo umount /mnt/myfolder

# Pour forcer
sudo umount -f -l /mnt/myfolder
```

#### Autres commandes utiles

Pour explorer un serveur et en lister les partages :

```bash
showmount -e 192.168.1.12
```

## Sources

[https://doc.ubuntu-fr.org/nfs](https://doc.ubuntu-fr.org/nfs)

[https://doc.ubuntu-fr.org/mount\_fstab#utilisation\_avancee](https://doc.ubuntu-fr.org/mount_fstab#utilisation_avancee)

# SCP – Transfert de fichiers via SSH

Commande permettant d'envoyer et de récupérer des fichiers entre deux machines via SSH.

## Envoyer un fichier vers un serveur distant

```bash
scp fichier.txt utilisateur@192.168.1.100:/chemin/destination/
```

## Télécharger un fichier depuis un serveur distant

```bash
scp utilisateur@192.168.1.100:/chemin/fichier.txt .
```

## Envoyer un dossier complet

```bash
scp -r dossier/ utilisateur@192.168.1.100:/chemin/destination/
```

## Télécharger un dossier complet

```bash
scp -r utilisateur@192.168.1.100:/chemin/dossier/ .
```

## Utiliser un port SSH spécifique

```bash
scp -P 2222 fichier.txt utilisateur@serveur:/chemin/
```

**Attention :** SCP utilise `-P` (majuscule) pour définir le port SSH.

## Utiliser une clé SSH spécifique

```bash
scp -i ~/.ssh/id_ed25519 fichier.txt utilisateur@serveur:/chemin/
```

## Préserver les dates et permissions

```bash
scp -p fichier.txt utilisateur@serveur:/chemin/
```

## Activer la compression pendant le transfert

```bash
scp -C fichier.txt utilisateur@serveur:/chemin/
```

## Afficher les informations détaillées du transfert

```bash
scp -v fichier.txt utilisateur@serveur:/chemin/
```

## Combiner plusieurs options

```bash
scp -P 2222 -i ~/.ssh/id_ed25519 -r dossier/ utilisateur@serveur:/chemin/
```

## Options utiles

| Option | Description |
|---|---|
| `-r` | Transfert récursif (dossiers) |
| `-P` | Port SSH |
| `-i` | Clé privée SSH |
| `-p` | Préserve les dates et permissions |
| `-C` | Active la compression |
| `-v` | Mode verbeux (debug) |
| `-q` | Mode silencieux |
| `-l` | Limite la bande passante (en Kbit/s) |

## Exemples pratiques

**Envoyer un fichier vers un serveur :**
```bash
scp backup.tar.gz admin@192.168.1.50:/home/admin/
```

**Récupérer un fichier depuis un serveur :**
```bash
scp admin@192.168.1.50:/var/log/syslog .
```

**Envoyer un dossier en utilisant un port SSH personnalisé :**
```bash
scp -P 2222 -r ./config/ admin@192.168.1.50:/opt/
```

**Limiter le débit à 10 Mbit/s :**
```bash
scp -l 10000 fichier.iso admin@192.168.1.50:/data/
```

## À retenir

- `scp` : copie sécurisée via SSH.
- `-r` : indispensable pour transférer un dossier.
- `-P` : définit le port SSH (majuscule).
- `-i` : permet de choisir une clé SSH.
- `-p` : conserve les dates et permissions.
- `-C` : active la compression.

**Astuce :** Pour des transferts réguliers, des sauvegardes ou des synchronisations de gros volumes, préférer `rsync`.