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 07:50] thierry43issue62:c_c [2012/08/24 15:38] (Version actuelle) auntiee
Ligne 1: Ligne 1:
-====== DRAFT ====== 
- 
 ** **
 Before I begin with the actual article, I thought it might be useful to address a question I got via email. A reader was asking where best to place my wallpapers.sh script, and, in doing so, reminded me that I haven't ever explained how best to go about this. My approach is to store all my scripts in a single folder (either a folder called “scripts,” or, if I want to save some visual space in my home folder, I'll call it .bin or .scripts so the folder is hidden). Make sure any script you place here is executable (chmod +x), and that they specify in the first line which interpreter is required (#!/bin/bash, #!/usr/env python, etc.) - otherwise calling it will not work. Once that is done, you could create a symbolic link to the script in /usr/bin with Before I begin with the actual article, I thought it might be useful to address a question I got via email. A reader was asking where best to place my wallpapers.sh script, and, in doing so, reminded me that I haven't ever explained how best to go about this. My approach is to store all my scripts in a single folder (either a folder called “scripts,” or, if I want to save some visual space in my home folder, I'll call it .bin or .scripts so the folder is hidden). Make sure any script you place here is executable (chmod +x), and that they specify in the first line which interpreter is required (#!/bin/bash, #!/usr/env python, etc.) - otherwise calling it will not work. Once that is done, you could create a symbolic link to the script in /usr/bin with
Ligne 7: 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 commencer avec le sujet de cet article, 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 (par exemple un dossier nommé "scripts", ou, si je veux épargner un peu de place "visuelledans mon dossier personnel, je l'appelle .bin ou .scripts et le dossier est alors caché. Assurez-vous que chaque script que vous placez à cet endroit soit exécutable (chmod +x)et que la première ligne du fichier précise bien l'interpréteur requis (#!/bin/bash, #!/usr/env python, etc.) - sinon tout appel au script échouera. Une fois 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 18: Ligne 15:
 ** **
  
-Cependant, cela peut se compliquer si vous commencez à supprimer 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 26: Ligne 23:
 ** **
  
-(remplacez "folderpar le chemin complet vers le dossier que vous avez créé). Pour rendre la modification permanente, vous pouvez la placer au choix dans votre .bashrc, votre .xinitrc (si vous démarrez votre interface graphique avec startx), ou dans n'importe quel autre script appelé lors de votre ouverture de session. J'ai expérimenter cela avec plus ou moins de succès, mais habituellement /etc/environment fonctionne bien. Comme le PATH est créé dans /etc/profile, vous pouvez aussi tout simplement ajouter le chemin vers le 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. C'est lié aux problèmes qui peuvent se produire lors de la création de configurations système qui utiliseraient des fichiers auxquels tous les utilisateurs n'ont pas accès. Le problème :  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 32: Ligne 29:
 ** **
  
-Les autres membres de ma famille sont passés récemment sur des portables MacBookset, pour la plupart d'entre eux, conserver l'organisation des fichiers est facile. 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 cette dernière personne, dont le PC tourne sous Arch Linux et Windows, c'est un peu plus compliqué. En premier, j'ai pensé utiliser rsync dans un script personnalisé pour synchroniser les dossiers les uns après les autres, mais, comme les modifications peuvent se faire sur n'importe quelle machine, j'avais besoin d'un méthode robuste pour les synchroniser (y compris pour les fichiers supprimés). Rsync peut le faire, mais je dois encore l'amener à remplir cette tâche à 100%En conséquence, j'ai à nouveau regardé unison, ce qui a eu pour résultat que je l'ai adopté aussi pour mes propres besoins de backup. Ci-dessous, je décris ma méthode pour configurer Unison (qui est 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 38: Ligne 35:
 ** **
  
-D'après le manuel d'Unison : "Unison est un utilitaire de synchronisation de fichiers pour Unix et Windows". Il permet de maintenir deux copies identiques d'une collection de fichiers et de répertoires sur différents hôtes (ou différents disques sur le même hôte), modifiés séparément, qui seront ensuite mis à jour par propagation des modifications de chaque copie vers 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 46: Ligne 43:
 ** **
  
-Pour synchroniser des machines différentes, la première étape nécessaire est la configuration de SSH sur l'une des machines (J'ai choisi le PC de ma maman, pour minimiser les risques de trous de sécurité possibles sur un portable connecté sur 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 54: Ligne 51:
 ** **
  
-Cela 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 64: 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 de clé publique dans le fichier des clés autorisées sur le serveur, cela signifie que si vous essayez ssh <IP>, sans non 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 quesi 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 82: Ligne 79:
 ** **
  
-Et maintenant, passons à Unison. La manière la plus simple de gérer des synchronisations de dossiers multiples et de créer plusieurs profils (fichiers .prf). Commes les options sont 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 99: Ligne 96:
 ** **
  
-En partant du début vers la fin, les paramètres font :+Du début à la fin, les paramètres font :
  
 ** **
Ligne 105: 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 111: 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é cela.+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 117: Ligne 114:
 ** **
  
-fastcheck - Je trouve que cela réduit très significativement 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. Le principe de fonctionnement est qu'il lit l'heure de modification du fichier en première passe, ainsi il peut ignorer les fichiers qui n'ont pas été modifiés (heure de modification identique du fichier dans la base de données). En 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 123: 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 sur un seveur Windows), vous devrez désactiver cette option, pour éviter des dizaines d'avertissements sur les permissions. Laisser cette option n'est pas un mauvais choix, 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 129: 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 est sur un disque dur NTFS partagé entre Windows et Arch sur mon PC), ainsi que 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 135: 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é pour vérifier si cela ralentit tout le processus, puisque les fichiers doivent être compressés, mais pour mon dossier de 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 147: Ligne 144:
 ** **
  
-Les quelques premières fois que vous exécuterez Unison, je vous recommande vivement de verifier manuellement les paramètres de synchronisation pour chaque fichiers qui apparait (les options sont :  de droite à gauche, de gauche à droite, ignorer), pour être certain de ne pas perdre ou gagner des fichiers que vous ne voulez pas. Une fois satisfait du traitement effectué par 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, tout en ignorant tout conflit avec batch = trueSi oui ou non vous pouvez rendre le traitement complétement automatique, je ne suis pas certain. Cependant, vous pouvez réduire les interventions en utilisant les options ci-dessus. Pour en apprendre plus sur Unison, vérifier "pour aller plus loin" pour un lien vers le manuel de l'utilisateur. Si vous souhaitez créer un mirroir de dossier unidirectionnel (p. ex. le copier d'une machine vers la suivante, sans synchroniser), alors je vous recommanderais vivement d'utiliser rsync, parce qu'il ne nécessite pas d'intervention utilisateur quand il est exécuté correctement. Il est aussi extrêmement bien documenté, ce qui le rend simple à utiliser. Pour terminerje voudrais souligner que Unison et Rsync fonctionnent aussi pour des dossiers locauxvous pouvez les utiliser pour réaliser des backups sur des lecteurs USB tout aussi bien. Si vous décidez d'exécuter ces commandes automatiquement dans un planificateur, je vous recommanderais de créer un script pour vérifier si le lecteur USB est branchéou pour vérifier si vous avez l'adresse IP distante correcte (ou  ping de l'IP du routeur). Ceci pour éviter d'utiliser des resources pour exécuter une commande qui échouera. Cela évite aussi d'ouvrir des connexions SSH avec des ordinateurs qui ont la même IP mais 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. Enfinj'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 153: Ligne 150:
 ** **
  
-J'espère que certains ont trouvé cet article interéssant ou utile. Je vais continuer à étendre mes fichiers de préférences comme je me sens plus à l'aise 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 joindre par email à lswest34@gmail.com. Si vous m'envoyez un mail, indiquez "C&Cou "FCM" dans le sujet, 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 169: 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
- 
- 
-====== to do ====== 
- 
- 
- 
- 
- 
- 
- 
issue62/c_c.1345614611.txt.gz · Dernière modification : 2012/08/22 07:50 de thierry43