Synchronisation PC portable, PC bureau :

Transcription

Synchronisation PC portable, PC bureau :
Synchronisation PC portable, PC bureau :
Partis 1 : SSH, rsync en manuellement
•
Deux VM Lubuntu
•
192.168.20.1 serveur
•
192.168.20.2 client
En tous premier mise a jour des dépôt puis installation des logiciel qui vont nous permettre de de
réaliser notre objectif.
Mise à jour
installation des mise a jour
Toujours utilise lors des installation de logiciel.
SSH qui va nous permettre de faire la connexion entre nos PC
RSYNC qui va lui faire la synchronisation
Rsync en local :
On va faire un teste rsync en local pour voir comment marche rsync. Je vais parler en chemin
absolut tous le temp.
Ici on va créer un dossier dans /home/max/Bureau avec « mkdir test », qui ne sera pas pressent dans
le Images avec lequel je vas synchroniser.
On voit ici la commande a exécuté.
•
Option -avz : a permet de copier de manière récursive
v affiche les changement et les copie effectuer
z compresse les donnée lors du transfert
Source
Destination
On peux voir qu'il y a eu une synchro « test »
Maintenant test apparais dans le dossier Images
Rsync avec SSH :
Première chose a faire après avoir fait les ping pour savoir si les machine se voit sur le réseau faire un
teste SSH pour être sur que lors de la sychro sa ne soit pas votre ssh qui plante.
SSH va vous posez une question vous allez répondre « yes », puis le mot de passe de la session sur
lequel vous voulez vous connecter. L'encadrer rouge vous concerne tous particulièrement root lenom
de la session sur lequel vous voulez vous connecter, « @ Obligatoire », et l'adresse Ip de la machine
ou le noms de l'ordinateur si vous disposer d'un DNS sur votre réseau.
Une fois que vous avez compris les indication du dessus on va pouvoir passer à la sychro avec SSH.
On part toujours sur la même base de rsync mais cette fois en destination on va inclure notre
connexion SSH, la commande se trouve en dessous bien sur vous devez changer votre nom et IP pour
le SSH. Attention après les identifiant SSH vous devez bien mettre les deux petit point.
Le slash / après Bureau est très important il permet de dire de sychro le contenu du fichier et nom de fichier lui même
Rsync avec SSH avec authentification clé priver clé publique :
Ça va nous permettre de faire les synchro sans que aucun mot de asse ne passe sur le réseau.
La première chose a faire est de créer une clé pour l'authentification, on va générer cette clé sur le la
machine serveur. On la générer avec cette commande :
La première chose que l'on va vous demmander ou voulez vous mettre cette clé que vous allez
générer. Par defaut est c'est un conseil tapez directement entrée, par defaut il va se mettre dans le
dossier indiquer /root/.ssh/id_dsa
Le principe est de générer une clé, la phrase que vous allez rentrer après « enter passphrase » sera
coder de façon que personne sauf votre ordinateur puis la décoder. Vous pouvez rentrer ce que vous
voulez mais à ne pas oublier bien sur.
Vous devrez avoir ça à la suite.
On va ensuite donner à l’ordinateur client la clé public qui je vous rappelle est une clé qui permet de
coder l'information, la clé priver va elle la décrypter. Cette commande est universelle celons si vous
avez changer la destination de la clé public au moment de sa création.(encadrer bleu).
Il va vous demandez le mot de passe pour la connexion SSH comme d'habitude.
On va retrouver cette réponde si la copie à était bonne.
Petit test avec juste une connexion SSH vous devez retrouver la même résultat. Vous aller rentrer la
clé que vous avez rentrer tous à l'heure.
Une Ssh réussi, on fait la même chose avec notre rsync.
Cron avec rsync :
La première chose à faire pour pouvoir utiliser cron sa va être de créer un exucutable bash pour y
mettre ma commande rsync. Pour sa « nano le-nom-de-votre-fichier »
Arriver sur le nano pour rendre votre fichier exécutable il vous faut rajouter une premier ligne qui
va signifier que c'est bien un fichier bash. Tous se qui va commencer par un # ne sera pas pris
comme une commande mais comme un commentaire.
On n'a pus cas tapez la commande rsync qui va pointer vers le fichier de votre choix.
Après sa création on va donner tous les droit aà tous les utilisateur pour être sur que le problème ne
vient pas d'un problème de droit accorder au utilisateurs. Par-contre ce n'ai pas sécuriser donc une
fois le teste fait vous devrais redonner les qu'il vous faut pour cette exécutable.
L’exécutable maintenant fait on va pouvoir configurer notre cron. La commande crontab -e permet
de modifier la fichier de cron.
Cron va donc excuter un script dans les temps de temps de vous présente sa syntaxe si dessous :
Dans cette syntaxe :
•
•
•
•
mm représente les minutes (de 0 à 59)
hh représente l'heure (de 0 à 23)
jj représente le numéro du jour du mois (de 1 à 31)
MMM représente le numéro du mois (de 1 à 12) ou l'abréviation du nom du mois en anglais
(jan, feb, mar, apr, ...)
• JJJ représente l'abréviation du nom du jour ou le chiffre correspondant au jour de la semaine
(0 représente le dimanche, 1 représente le lundi, ...)
• tâche représente la commande ou le script shell à exécuter
• log représente le nom d'un fichier dans lequel stocker le journal des opérations. Si la clause
"> log" n'est pas spécifiée, cron enverra automatiquement un courriel de confirmation. Pour
éviter cela il suffit de spécifier > /dev/null
Pour chaque unité de temps (minute/heure/...) les notations sont possibles:
•
•
•
•
* : a chaque unité de temps
2-5 : les unités de temps (2,3,4,5)
*/3 : toutes les 3 unités de temps (0,3,6,...)
5,8 : les unités de temps 5 et 8
J'ai donc fait ma ligne qui va s’exécuter tous les deux minutes. Il faut mettre le chemein absolue
pour être sur qu'il exécute le bon bash.
Incron :
Incron va servir à synchroniser deux dossier ou répertoire entre eux mais incron est beaucoup plus
puissant que rsync qui lui ne va s’exécuter que quand on lui dit de la faire. Incron sychro le dossier qui
nous intéresse des qu'il y a une action dans se dossier, sa peux très bien être une modification ou un rajout.
On télécharge incron toujours avec la commande apt-get install
Dans le répertoire /etc se trouvent 3 fichiers de configuration :
incron.conf : fichier de configuration principal
incron.allow : utilisateurs autorisés à utiliser incron
incron.deny : utilisateurs non autorisés à utiliser incron
Si le fichier incron.allow existe, seuls les utilisateurs listés pourront utiliser incron. Pour notre
exemple, nous allons le supprimer afin que tous les utilisateurs puissent utiliser incron :
rm /etc/incron.allow
On va en tous premier faire un test en local. Pour sa on va créer un trois dossier dans un dossier qui sera
le même tous le long de se test en local. Vous aller donner aussi tous les droit 777 au dossier download.
On va donc créer notre script pour incron cette fois, on va l'appeler incron-scrit.sh
Il sera composé donc de sa.
Dans notre test on va faire deux type de test, si le fichier que l'on va enregistrer d ans download est
un fichier avec l'extension .zip elle sera déplacer dans le dossier repzip, si par-contre le fichier
enregistrer est un fichier avec l'extension .pdf il sera déplacer dans le fichier reppdf.
Le script que je vous montre marche par variable, le fichier prendra la valeur de 1 si elle comporte
en extension .zip, pour désigner une variable en bash et dans plusieurs autre langage on doit mettre
$ devant la variable. Donc si le fichier est un .zip on dépassera dans repzip.
Si le fichier n'a pas était traiter pas le premier script on va passer au deuxième qui est pareil sauf ur
un point lui traite les .pdf
Une fois le script compris et fait on va passer à la conf d'incron, pour sa incrontab -e
Dans ce fichier rien de trop compliqué encore, dossier (chemin absolue) que incron va regarder en
permanence pour savoir avec les option qui suivront si il y a du changement.
Option incron dans l'encadrer rouge que je vais vous expliquer un peux plus bas.
La dernière partis de la commande va être le script que va exécuter incron (chemin absolue)
Toujours dans notre exemple, losqu'un fichier est déposé dans le répertoire "download", on récupère
son nom grâce à $#.
IN_ACCESS
IN_ATTRIB
IN_CLOSE_WR
ITE
IN_CLOSE_NO
WRITE
IN_CREATE
IN_DELETE
IN_DELETE_S
ELF
IN_MODIFY
IN_MOVE_SEL
F
IN_MOVED_F
ROM
IN_MOVED_T
O
IN_ALL_EVEN
TS
IN_MOVE
le fichier a été accédé (lecture)
les métadonnées du fichier ont été modifiées (permissions, timestamp, attributs étendus, etc)
fermeture d’un fichier avec écriture. On attend que le fichier soit clôturé, dans notre cas, que le
téléchargement SOIT TERMINE avant de déclencher la commande ou le script
fermeture d’un fichier sans écriture
fichier ou répertoire créé dans un répertoire surveillé. Attention : la commande est déclenchée
lorsque le fichier est créé MAIS pas "terminé". Dans le cas d'un téléchargement qui dure 2 mn dans
notre répertoire "download", la commande se déclencherait dès la création du fichier SANS
ATTENDRE LA FIN DU TÉLÉCHARGEMENT. L’opération de déplacement échouerait.
fichier ou répertoire supprimé dans un répertoire surveillé
le fichier ou répertoire surveillé est supprimé
le fichier ou répertoire a été modifié
le fichier ou répertoire a été déplacé
un fichier du répertoire surveillé à été déplacé
un fichier a été déplacé dans le répertoire surveillé
combinaison de tous ce qui précède
équivalent à IN_MOVED_FROM ou IN_MOVED_TO
IN_CLOSE
équivalent à IN_CLOSE_WRITE ou IN_CLOSE_NOWRITE
Maintenant vous pouvez faire le test copier un .pdf dans download, il va aller directement dans le
dossier reppdf.
Incron avec ssh :
En premier connexion ssh sans au-qu’un mot de passe.
Génération d'un clé :
ssh-keygen -t rsa -b 1024
Puis tapez trois fois entrée
Copier la clé sur l'autre ordinateur :
Crée sur la machine client un dossier .ssh.
mkdir /root/.ssh
Pus cas faire un teste avec une connexion SSH.
Il faudra aussi télécharger supercat : apt-get install supercat
Maintenant La connexion SSH configurer on va faire la même chose que que incron local mais en
remplacent le le fichier local de destination par un fichier distant.
On va aller changer le script incron-script.sh, on peux voir a l'ancienne ligne du mv j'ai mis un scp
qui est le copier mais pour les connexion ssh.
Même chose que la dernière fois on peux faire le test avec le fichier .pdf
Unison avec incron :
Je vais utiliser unison qui permet de synchroniser deux répertoire qu'il soit distant ou local.
Je vais y rajoute incron Pour l'automatiser.
Le packet a installer unison
La première chose à faire créer un dossier unison dans lequel on pouvoir installer les profils unison.
Les profil, lors du lancement de unison on ne va pas tapez le nom d'un profils est les comande
stocker dans le profil vont être exécuter.
Pour commencer on va créer default.prf qui le profil par défaut pour unison.
Précision :
1. Premier chemin à synchroniser
2. Deuxième chemin à synchroniser
3. Fait toute le commande
4. N'écrit rien lors du transfert sur le pronte
5. Ignore les permissions
Pour lancer unison, il suffit de tapez la commande « unison ''profil que vous voulez
utiliser''
Maintenet que unison marche on va pouvoir le coupler à incron : incrontab -e
On va y mettre cette commande. Le dossier à partager ''option'' le script dans notre cas unison
Bien sur vous devez faire le teste sans passer par incron, il se peux que vous ayez des problème
avec votre authentification clé priver clé public il va