Outils pour utilisateurs

Outils du site


issue62:c_c

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
issue62:c_c [2012/08/22 09:53] thierry43issue62:c_c [2012/08/24 15:38] (Version actuelle) auntiee
Ligne 5: Ligne 5:
  
 ** **
- +Avant de commencer cet article, proprement dit, je pense qu'il serait utile de répondre à une question que j'ai reçue par e-mail. Un lecteur demandait le meilleur endroit pour placer mon script wallpapers.sh et, ce faisant, il m'a rappelé que je n'avais jamais expliqué comment faire cela au mieux. Personnellement, je place tous mes scripts dans un dossier unique (p. ex. un dossier « scripts » , ou, si je veux gagner un peu de place « visuelle »  dans mon dossier personnel, je l'appelle .bin ou .scripts et il est alors caché). Assurez-vous que chaque script mis ici soit exécutable (chmod +x) et que sa première ligne précise l'interpréteur requis (#!/bin/bash, #!/usr/env python, etc.) - sinon tout appel échouera. Cela terminé, vous pouvez créer un lien symbolique vers le script dans /usr/bin avec :
-Avant de débuter avec le sujet principal, je pense qu'il serait utile de répondre à une question que j'ai reçue par email. Un lecteur demandait le meilleur endroit pour placer mon script wallpapers.shet, ce faisant, il m'a rappelé que je n'avais jamais expliqué comment faire cela au mieux. Mon approche est de placer tous mes scripts dans un dossier unique (p. ex. un dossier "scripts", ou, si je veux épargner un peu de place "visuelledans mon dossier personnel, je l'appelle .bin ou .scripts et il est alors caché. Assurez-vous que chaque script mis à cet endroit soit exécutable (chmod +x)et que sa première ligne précise l'interpréteur requis (#!/bin/bash, #!/usr/env python, etc.) - sinon tout appel échouera. Cela terminé, vous pouvez créer un lien symbolique vers le script dans /usr/bin avec+
  
 sudo ln -s /path/to/script /usr/bin/script sudo ln -s /path/to/script /usr/bin/script
Ligne 16: Ligne 15:
 ** **
  
-Cependant, cela se complique si vous supprimez des scripts (cela laissera des liens brisés dans votre dossier /usr/bin). Une autre approche est d'ajouter le dossier à votre variable $PATH. Cela peut se faire avec+Cependant, cela se complique si vous supprimez des scripts (cela laissera des liens brisés dans votre dossier /usr/bin). Une autre possibilité est d'ajouter le dossier à votre variable $PATH. Cela peut se faire avec :
  
 export PATH=$PATH:<folder> export PATH=$PATH:<folder>
Ligne 24: Ligne 23:
 ** **
  
-(remplacez "folderpar le chemin vers le dossier que vous avez créé). Pour rendre cela permanent, vous pouvez la placer dans votre .bashrc, votre .xinitrc (si vous démarrez votre interface graphique avec startx), ou dans n'importe quel autre script appelé à votre ouverture de session. J'ai expérimenté cela avec plus ou moins de succès, mais habituellement /etc/environment fonctionne bien. Comme PATH est créée dans /etc/profile, vous pouvez aussi simplement ajouter le chemin du dossier des scripts à la fin de ce path. Je recommande d'éviter tout fichier dans /etc/et plutôt d'organiser tous vos scripts dans $HOME. Cela dû aux problèmes pouvant surgir lors de la création de configurations système qui utiliseraient des fichiers auxquels tous les utilisateurs n'ont pas accès. Tout ce qui se trouve dans $HOME est limité à votre compte utilisateur. Et maintenant, revenons au sujet de cet article.+(remplacez « folder » par le chemin vers le dossier que vous avez créé). Pour rendre cela permanent, vous pouvez le placer dans votre .bashrc, votre .xinitrc (si vous démarrez votre interface graphique avec startx), ou dans n'importe quel autre script appelé à votre ouverture de session. J'ai expérimenté cela avec plus ou moins de succès, mais habituellement /etc/environment fonctionne bien. Comme PATH est créé dans /etc/profile, vous pouvez aussi simplement ajouter le chemin du dossier des scripts à la fin de ce path. Je recommande d'éviter tout fichier dans /etc/ et plutôt d'organiser tous vos scripts dans $HOME. Cela est dû aux problèmes pouvant surgir lors de la création de configurations système qui utiliseraient des fichiers auxquels tous les utilisateurs n'ont pas accès. Tout ce qui se trouve dans $HOME est limité à votre compte utilisateur. Et maintenant, revenons au sujet de cet article.
  
 ** **
Ligne 30: Ligne 29:
 ** **
  
-Le reste de ma famille est passé récemment sur des portables MacBookset, pour la plupart d'entre eux, organiser leurs fichiers est simple. Pour l'un d'eux, le MacBook est son seul ordinateuret, pour l'autre c'est une machine professionnelle où seulement les fichiers de la société doivent être synchronisés. Néanmoins, pour ce dernier, dont le PC est sous Arch Linux et Windows, c'est un peu plus compliqué. En premier, je pensais utiliser rsync dans un script propre pour synchroniser les dossiers les uns après les autres, mais, comme les modifications peuvent se faire sur n'importe quelle machine, il me fallait une méthode robuste pour synchroniser (incluant les fichiers supprimés). Rsync peut le faire, mais je dois l'amener à remplir cette tâche à 100%Dés lors, je suis revenu vers Unisonet l'ai finalement adopté aussi pour mes propres besoins de backup. Ci-dessous, je décris ma méthode pour configurer Unison (disponible dans le dépôt universe).+Le reste de ma famille est passé récemment sur des portables MacBooks et, pour la plupart d'entre eux, organiser leurs fichiers est assez simple. Pour l'un d'eux, le MacBook est son seul ordinateur et, pour l'autrec'est une machine professionnelle où seulement les fichiers de la société doivent être synchronisés. Néanmoins, pour ce dernier, dont le PC est sous Arch Linux et Windows, c'est un peu plus compliqué. En premier, je pensais utiliser rsync dans un script propre pour synchroniser les dossiers les uns après les autres, mais, comme les modifications peuvent se faire sur l'une ou l'autre machine, il me fallait une méthode robuste pour les synchroniser (incluant les fichiers supprimés). Rsync pourrait peut-être le faire, mais je n'ai pas encore totalement réussi avecC'est pourquoi je suis revenu vers Unison et l'ai finalement adopté aussi pour mes propres besoins de backup. Ci-dessous, je décris ma méthode pour configurer Unison (disponible dans le dépôt universe).
  
 ** **
Ligne 36: Ligne 35:
 ** **
  
-Selon le manuel d'Unison : "Unison est un utilitaire de synchronisation de fichiers pour Unix et Windows". Il permet deux copies identiques d'une collection de fichiers et de dossiers sur différents hôtes (ou différents disques sur le même hôte), modifiés séparément, mis ensuite à jour par propagation des modifications d'une copie à l'autre.+Selon le manuel d'Unison : « Unison est un utilitaire de synchronisation de fichiers pour Unix et Windows. Il permet deux copies identiques d'une collection de fichiers et de dossiers d'être stockées sur différents hôtes (ou différents disques sur le même hôte), modifiées séparément, et mises ensuite à jour par propagation des modifications d'une copie à l'autre.
  
 ** **
Ligne 44: Ligne 43:
 ** **
  
-Pour synchroniser entre différentes machines, la première étape nécessaire est de configurer SSH sur une des machines (J'ai choisi le PC de ma maman, pour réduire les risques de sécurité liés à un portable connecté à un réseau public avec SSH activé). Il est aussi très important d'activer la connexion SSH basée sur une clé. C'est très simple avec les deux commandes suivantes :+Pour synchroniser entre différentes machines, la première étape nécessaire est de configurer SSH sur l'une des machines (j'ai choisi le PC de ma mère, pour réduire les risques éventuels de sécurité liés à un portable connecté à un réseau public avec SSH activé). Il est aussi très important d'activer la connexion SSH basée sur une clé. C'est assez simple avec les deux commandes suivantes :
  
 ssh-keygen -b 521 -t ecdsa -C"$(id -un)@$(hostname)-$(date –rfc-3339=date)" ssh-keygen -b 521 -t ecdsa -C"$(id -un)@$(hostname)-$(date –rfc-3339=date)"
Ligne 52: Ligne 51:
 ** **
  
-Ceci va créer la clé. Suivez les instructions à l'écran. N'oubliez pas que si vous définissez une passphrase, vous devrez l'introduire lors de l'utilisation de la clé - ce qui réduit l'intérêt d'une connexion basée sur clé.+Cela va créer la clé. Suivez les instructions à l'écran. N'oubliez pas que si vous définissez une phrase de passe, vous devrez la saisir lors de l'utilisation de la clé - ce qui réduit l'intérêt d'une connexion basée sur clé.
  
 ** **
Ligne 62: Ligne 61:
 scp ~/.ssh/id_ecdsa.pub username@remote-server.org:~/.ssh/authorized_keys scp ~/.ssh/id_ecdsa.pub username@remote-server.org:~/.ssh/authorized_keys
  
-Copie du fichier dans le fichier des clés autorisées du serveur, si vous essayez ssh <IP>, sans nom d'utilisateur, cela vous connectera automatiquement en utilisant la clé, sans demander de mot de passe. Remarque : si votre version de ssh ne supporte pas ecdsa, les clés rsa sont bien aussi.+Copie le fichier dans le fichier des clés autorisées du serveur, ce qui veut dire que, si vous essayez ssh <IP>, sans nom d'utilisateur, cela vous connectera automatiquement en utilisant la clé, sans demander de mot de passe. Remarque : si votre version de ssh ne supporte pas ecdsa, les clés rsa sont bien aussi.
  
 ** **
Ligne 80: Ligne 79:
 ** **
  
-Et maintenant, passons à Unison. Le plus simple pour synchroniser des dossiers multiples est de créer plusieurs profils (fichiers .prf). Les options étant les mêmes, je vais expliquer un seul exemple. Mon profil de synchronisation musique ressemble à ceci :+Et maintenant, passons à Unison. Le plus simple pour gérer des dossiers de synchronisation multiples est de créer plusieurs profils (fichiers .prf). Les options étant les mêmes, je vais expliquer un seul exemple. Mon profil de synchronisation musique ressemble à ceci :
  
 # Unison preferences # Unison preferences
Ligne 97: Ligne 96:
 ** **
  
-Du début vers la fin, les paramètres font :+Du début à la fin, les paramètres font :
  
 ** **
Ligne 103: Ligne 102:
 ** **
  
-label - définit le nom du profil, pour la liste des profils dans l'IHM.+label - définit le nom du profil, pour la liste des profils dans l'interface.
  
 ** **
Ligne 109: Ligne 108:
 ** **
  
-root - Ce sont les source/destination (dans cet ordre). Il ne devrait pas être possible d'utiliser plus de 2 roots, bien que je n'ai pas testé.+root - Ce sont les source/destination (dans cet ordre). Il ne devrait pas être possible d'utiliser plus de 2 roots, bien que je ne l'aie pas testé.
  
 ** **
Ligne 115: Ligne 114:
 ** **
  
-fastcheck - Je trouve que cela réduit énormément le temps de recherche. Supposé être par défaut pour les systèmes Unix, mais cela ne fait pas de mal de préciser. La façon dont il procède :  lecture de l'heure de modification des fichiers dans une première passe, ainsi il peut ignorer tous les fichiers non modifiés (heure de modification identique à celle de la base de données). Dans une seconde passe, il génère une signature et la compare au dernier contenu à synchroniser.+fastcheck - Je trouve que cela réduit énormément le temps de recherche. C'est supposé être par défaut pour les systèmes Unix, mais cela ne fait pas de mal de préciser. La façon dont il procède :  lecture de l'heure de modification des fichiers dans une première passe, ainsi il peut ignorer tous les fichiers non modifiés (heure de modification identique à celle de la base de données). Dans une seconde passe, il génère une signature et la compare au dernier contenu à synchroniser.
  
 ** **
Ligne 121: Ligne 120:
 ** **
  
-dontchmod - Unison essaie de conserver des permissions identiques, ce qui est bien lors de synchronisations entre système Linux/Unix, mais pour n'importe quoi stocké sur NTFS (ou serveur Windows), vous devrez désactiver cette option, pour éviter des dizaines d'avertissements de permissions. Laisser cette option n'est pas mauvais, le paramétrage de permission échoue, mais cela ralentit les transferts.+dontchmod - Unison essaie de conserver des permissions identiques, ce qui est bien lors de synchronisations entre systèmes Linux/Unix, mais pour n'importe quoi stocké sur NTFS (ou serveur Windows), vous devrez désactiver cette option, pour éviter des dizaines d'avertissements de permissions. Laisser cette option n'est pas mauvais, le paramétrage de permission ne fait qu'échouer, mais cela ralentit les transferts.
  
 ** **
Ligne 127: Ligne 126:
 ** **
  
-ignore - Cette option indique à Unison quels fichiers ignorer. Dans mon cas, j'ignore tous les fichiers .ini que Windows prend un malin plaisir à créer (mon média étant un disque dur NTFS partagé entre Windows et Arch sur mon PC)et les pochettes parce que j'utilise une autre méthode sous Linux.+ignore - Cette option indique à Unison quels fichiers ignorer. Dans mon cas, j'ignore tous les fichiers .ini que Windows prend un malin plaisir à créer (mon média étant un disque dur NTFS partagé entre Windows et Arch sur mon PC) et les pochettesparce que j'utilise une autre méthode sous Linux.
  
 ** **
Ligne 133: Ligne 132:
 ** **
  
-sshargs - fournit les arguments à la session ssh. L'option "-Cindique à SSH de compresser les informations envoyées, théoriquement cela réduit le temps de transfert par fichier (Je n'ai pas testé si cela ralentit tout le processus, puisque les fichiers doivent être compressés, mais pour mon dossier musique de taille modérée, cela ne prend pas trop de temps pour synchroniser les modifications en ce moment).+sshargs - fournit les arguments à la session ssh. L'option « -C » indique à SSH de compresser les informations envoyées, ce qui réduit théoriquement le temps de transfert par fichier(Je n'ai pas testé si cela ralentit tout le processus, puisque les fichiers doivent être compressés, mais pour mon dossier musique d'assez grande taille, cela ne prend pas trop de temps actuellement pour synchroniser les modifications.)
  
 ** **
Ligne 145: Ligne 144:
 ** **
  
-Les quelques premières fois que vous exécuterez Unison, je recommande vivement de vérifier manuellement les paramètres de synchronisation pour chaque fichier qui apparait (les options sont :  de droite à gauche, de gauche à droite, ignorer), pour être certain de ne pas perdre ou gagner des fichiers non désirés. Une fois satisfait du traitement d'Unison, vous pouvez le configurer pour accepter les modifications non conflictuelles en ajoutant "auto = trueau fichier .prf. Unison peut aussi accepter les modifications non conflictuelles en ignorant les conflits avec batch = true. Je ne suis pas certain que vous puissiez rendre le traitement complétement automatique. Cependant, vous pouvez diminuer les interventions en utilisant les options ci-dessus. Pour approfondir Unison, "pour aller plus loinci-dessous reprend un lien vers le manuel utilisateur. Pour créer un mirroir unidirectionnel de dossier (p. ex. copier d'une machine vers la suivante, sans synchroniser), alors je recommanderais fortement rsync, qui ne nécessite pas d'intervention utilisateur quand il est exécuté correctement. Il est aussi très bien documenté, ce qui le rend simple à utiliser. Finallement, j'aimerais souligner que Unison et Rsync fonctionnent aussi pour des dossiers locauxvous pouvez les utiliser pour réaliser des backups sur lecteurs USB tout aussi bien. Si vous décidez d'exécuter ces commandes automatiquement dans un planificateur, je vous conseille de créer un script pour vérifier si le lecteur USB est branchéou pour vérifier si l'adresse IP distante est correcte (ou ping IP du routeur). Ceci pour éviter d'utiliser des resources en exécutant une commande qui échouera. Et pour éviter d'ouvrir des connexions SSH avec des ordinateurs ayant la même IP mais qui ne sont pas la cible attendue, ce qui peut entrainer des problèmes en amont.+Les deux ou trois premières fois que vous exécuterez Unison, je recommande vivement de vérifier manuellement les paramètres de synchronisation pour chaque fichier qui apparaît (les options sont :  de droite à gauche, de gauche à droite, ignorer), pour être certain de ne pas perdre ou gagner des fichiers non désirés. Une fois satisfait du traitement d'Unison, vous pouvez le configurer pour accepter les modifications non conflictuelles en ajoutant « auto = true » au fichier .prf. Unison peut aussi accepter les modifications non conflictuelles en ignorant les conflits avec « batch = true ». Je ne suis pas certain que vous puissiez rendre le processus complètement automatique. Cependant, vous pouvez diminuer les interventions en utilisant les options ci-dessus. Si vous voulez apprendre davantage sur Unison, la section « pour aller plus loin » ci-dessous reprend un lien vers le manuel utilisateur. Pour créer un miroir unidirectionnel de dossier (p. ex. copier d'une machine vers une autre, sans synchroniser), alors je recommanderais fortement rsync, qui ne nécessite pas d'intervention utilisateur quand il est exécuté correctement. Il est aussi très bien documenté (voir la manpage), ce qui le rend simple à utiliser. Enfin, j'aimerais souligner que Unison et Rsync fonctionnent aussi pour des dossiers locaux et vous pouvez les utiliser aussi pour réaliser des sauvegardes sur lecteurs USB. Si vous décidez d'exécuter ces commandes automatiquement dans un planificateur, je vous conseille de créer un script pour vérifier si le lecteur USB est branché ou pour vérifier si l'adresse IP distante est correcte (ou peut effectuer un ping sur l'IP du routeur). Ceci pour éviter d'utiliser des resources en exécutant une commande qui échouera. Et pour éviter d'ouvrir des connexions SSH avec des ordinateurs ayant la même IPmais qui ne sont pas la cible voulue, ce qui peut entraîner des problèmes plus tard.
  
 ** **
Ligne 151: Ligne 150:
 ** **
  
-J'espère que vous avez trouvé cet article interéssant ou utile. Je vais continuer à étendre mes fichiers de préférences, en prenant de l'assurance avec Unison, et mentionnerai toutes astuces que je découvrirai au fil du temps. Comme toujours, si vous avez des questions, suggestions, ou remarques, vous pouvez me contacter par email à lswest34@gmail.com. Si vous m'envoyez un mail, indiquez "C&Cou "FCMen objet, ainsi je ne le passerai pas.+J'espère qu'au moins certains d'entre vous avez trouvé cet article intéressant ou utile. En prenant de l'assurance avec Unison, je vais continuer à étendre mes fichiers de préférences et je mentionnerai toute astuce que je découvrirai au fil du temps. Comme toujours, si vous avez des questions, suggestions, ou remarques, vous pouvez me contacter par mail à lswest34@gmail.com. Si vous m'envoyez un courriel, indiquez « C&» ou « FCM » en objet, ainsi je ne le négligerai pas.
  
 ** **
Ligne 167: Ligne 166:
  
 Wiki Ubuntu, clés SSH :  https://help.ubuntu.com/community/SSH/OpenSSH/Keys Wiki Ubuntu, clés SSH :  https://help.ubuntu.com/community/SSH/OpenSSH/Keys
- 
issue62/c_c.1345622001.txt.gz · Dernière modification : 2012/08/22 09:53 (modification externe)