L’objectif de cette séance est de mettre en place un OS que vous contrôlerez entièrement, puis de le configurez et de l’utiliser afin de revoir les bases dans un premier temps. Il est recommandé de prendre des notes, celle-ci pourront être envoyées à votre chargé de TP (prenom.nom@univ-amu.fr) à la fin de la journée pour avoir un retour.
choisir LUNIX comme système de travail (d’ailleurs qu’est-ce que thinOS
?)
1. Installation d’un OS (virtuel)
Qu’est-ce que la virtualisation ?
Nous allons manipuler des machines virtuelles (VMs). Le système sous lequel vous êtes actuellement sera dénommé système hôte. Comme toute machine physique, une machine virtuelle est composée de
- un CPU (partagé avec le système hôte et les autres VMs)
- de la RAM (non partagée)
- un disque dur virtuel sur lequel est installé un système d’exploitation
- des périphériques :
- partagés (clavier, souris, écran, …)
- dédiés, virtuels (comme les cartes réseaux)
1.1. Installation “à la main”
Facultatif si vous avez déjà effectué ce type d’installatuon
- télécharger l’image ISO d’installation debian
- lancer virtualbox
- avec l’interface graphique, créer une nouvelle machine virtuelle (quels sont les “bons” paramètres ?)
- démarrer la machine et choisir comme “CD” l’image ISO précédemment téléchargée
- faire l’installation du système
- prendre les options par défaut
- choisir comme environnement XFCE4
- il y a un tutoriel ici avec de la documentation, et pour aller plus loin, là
Notez tous les points de la procédure en lien, selon vous, avec les aspects “système”.
Attention, vérifier s’il vous reste assez de place pour la suite avec la commande
$ quota -s
Supprimer cette VM si nécessaire. Supprimer également l’image ISO téléchargée.
1.2. Installation plus rapide / plus “moderne”
La machine virtuelle se configure avec vagrant
.
(en fait vagrant
apporte une couche d’abstraction aux
logiciels de virtualisation
— VirtualBox, VMWare, … —
que vous avez utilisé au point précédent).
On ne peut
configurer ses aspects “physiques” virtualisés (RAM, nombres
et branchement des interfaces réseaux, …)
que lorsque la machine est éteinte.
Le système d’exploitation de la VM s’administre avec ses propres outils
d’administration, quand la VM est démarrée.
Mise en Oeuvre
Ici nous utiliserons vagrant
. L’image
préinstallée à utiliser est à télécharger puis stocker sur
/tmp/debianTP.box
(en lecture seule). Cette image
contient une version minimaliste de Debian/XFCE. Nous allons faire ces étapes pas-à-pas.
NB Ces indications sont valables uniquement sur les postes DOSI, adapter si nécessaire les chemins concernés sur votre propre PC.
Les disques complets de ces VMs sont gros, pour pouvoir être stockées sur votre compte, il faudra vérifier qu’il y a assez de place libre.
- Vérifier que vous disposez bien d’au moins 1Go de libre sur votre compte:
$ quota -s
la seconde valeur soustraite de la première doit faire au moins 2,5Go. - Vérifier que vous disposez bien d’une partition locale accessible
d’au moins 20 Gio:
$ df -h /tmp Sys. de fichiers Taille Uti. Disp. Uti% Monté sur /dev/sda4 78G 3,1G 75G 4% /tmp
- Compte-rendu : faire un compte-rendu de vos opérations, questions (et réponses …) afin d’avoir une trace de ce que vous avez réalisé. NB: vous devez être capable d’expliquer ce que fait chaque commande shell (ainsi que ses options).
- Copier l’image depuis le réseau:
$ cd /tmp/ $ curl -o debianTP.box https://pageperso.lis-lab.fr/emmanuel.godard/boxes/debianTP.box $ curl -o debianTP.box.md5 https://pageperso.lis-lab.fr/emmanuel.godard/boxes/debianTP.box.md5 $ md5sum -c debianTP.box.md5
Votre première VM
Mise en place de votre “box”
Nous allons maintenant indiquer à `vagrant` quelles images disques seront virtualisées. C’est à faire une seule fois sur la semaine.
$ vagrant box add /tmp/debianTP.box --name "m1reseaux" // si la commande précédente échoue, cela signifie que la box est déjà en place // Pour la supprimer: $ vagrant box remove "m1reseaux"
- Avant de continuer, vérifier que la box est bien installée
$ vagrant box list m1reseaux (virtualbox, 0)
Configuration de la VM
- Créer un répertoire
soutienSR
et un sous-répertoiretp1
, puisVM1
$ mkdir -p ~/soutienSR/tp1/VM1 $ cd ~/soutienSR/tp1/VM1
- dans ce répertoire
VM1
, copier le fichierVagrantfile
. Il décrit les propriétés de votre machine vituelleVM1
- lancer la VM
$ vagrant up
La connexion est automatique. Votre login estm1reseaux
, votre mot de passe identique.
Compte-rendu
- Au démarrage de la VM, lire les informations.
- Quels sont les paramètres “physiques” de votre VM ?
- Pouvez-vous vous connecter à Internet, à la
page du TP
avec
wget
? - Stopper la VM avec
$ vagrant halt
2. Découverte de l’environnement
2.1. Environnement graphique
Il s’agit de XFCE (que vous pouvez aussi choisir sur le système AMU), naviguez dans les menus, configurer le fond d’écran, etc …
2.2. Terminal
Lancer un terminal (lequel ? combien y en a-t-il ? comment choisir ?)
3. Utilisation de base
3.1. La base basique
facultatif: à faire selon votre propre estimation
Lire cette page et faire les TP1 et TP2 sur cette page.
3.2. Rappels d’utilisation
rappel : le shell est un environnement de programmation système interactif. Les paramètres des fonctions/commandes sont principalement positionnels.
La documentation détaillée se trouve
- intégrée :
man commande
- en ligne et en français : https://fr.manpages.org/
Faire les TP3 à TP6 sur cette page.
NB on devient root sur votre système avec la commande sudo
(documentation et
tutoriel).
Au delà des spécificités syntaxiques, noter la proximité avec un
langage de programmation interactif, comme la
REPL
de python3
.
4. Utilisation administrateur
4.1. Rappels
- qu’est-ce que l’administrateur ? pourquoi s’appelle-t-il root sous UNIX ?
- on devient root sur votre système avec la commande
sudo
(documentation et tutoriel), - devenir root et tester la commande
whoami
.
4.2. Exercices
Effectuer les exercices droits d’accès en parallèle dans deux fenêtres, l’une en tant que simple utilisateur, l’autre en tant qu’administrateur.
5. Une application simple et efficace de sauvegarde
On souhaite (ré)écrire un script de sauvegarde incrémentielle en bash. Ce script utilisera deux variables
SRC
: le répertoire à sauvegarderSVGD
: le répertoire contenant les sauvegardes sous la formeAAAA-MM-JJ_HH:MM:SS
, cette chaîne correspond à la date et l’heure auxquelles est invoqué le script.
Revoir les bases.
5.1. Version simple
On va commencer par copier simplement le répertoire (et ses
sous-répertoires) SRC
en conservant tous les attributs systèmes
(dates, propriétaires, droits d’accès …).
- quelle est l’option de
cp
permettant de conserver (archiver) les attributs ? - il existe une commande appellée
rsync
. Expliquer pourquoi elle est différente decp
. - pourquoi faut-il lancer le script avec des droits root ?
5.2. Version efficace
On va implémenter la version dite “incrémentielle”, ie qui ne stocke que les fichiers modifiés par rapport à la précédente sauvegarde.
Rappels :
- qu’est-ce qu’un lien ? un lien symbolique ?
- quels sont les paramètres pour la commande
ln
Le principe est de faire un lien vers la version sauvegardée précédemment lorsque le fichier n’a pas été modifiée depuis. Les fichiers modifiés sont eux copiés comme précédemment.
Pour finir, comparer les tailles des répertoires avec la commande du -h
.
5.3. Version installée
Utiliser cron
pour lancer ce script de sauvegarde toutes les heures.