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