@matn

Mon bloc note perso sur les systèmes UNIX & GNU/Linux, le développement et... la photo.

Aller au contenu | Aller au menu | Aller à la recherche

09oct. 2009

SSH et authentification par clé

Tout est dans le titre :)

ssh-keygen
cat ~/.ssh/id_rsa.pub | ssh test@10.1.1.1 "cat - >> ~/.ssh/authorized_key"

et hop:

ssh test@10.1.1.1

29sept. 2009

Find et fichiers modifiés

Petite commande FIND pour afficher les nombre de fichiers modifiés au cours des dernières 24h et la taille que cela représente:

nice -n 15 find /tmp -mtime -1 \! -type d -printf '%Ad-%Am-%AY\t%AH:%AM:%AS\t%s %p\n' |awk '{total+=$3;nbfich+=1}END{print "Taille: " total " Bytes";print "Nombre de fichiers modifies: "nbfich}'

Résultat de l'exécution:
Taille: 17418964 Bytes
Nombre de fichiers modifies: 7

15sept. 2009

Host Série Linux Mag - Postgresql 8.4

Linux Mag Postgresql
Ça y est je l'ai en main! Le nouveau hors série GNU/Linux Magazine France n°44. Cette fois-ci Postgresql est à l'honneur avec sa version 8.4. J'ai commencé à feuilleter le magazine et je dois dire Guillaume Lelarge (rédacteur à lui seul de la totalité des articles de ce HS) à réalisé un travail titanesque (éléphantesque?) . Dans la lignée de ses précédents articles, didactique, passionnant et vraiment très instructif. Bravo Guillaume. Un grand merci. Bref, courrez acheter cet numéro, c'est que du bon ;-)

08sept. 2009

Chiffrer ses fichiers avec openssl.vim

L'utilisation de gnupg pour chiffrer un fichier est viable mais pas vraiment adaptée au chiffrement d'un fichiers de mots de passe (contrairement à ce que j'affirmais il y a quelque temps dans ce billet). En effet, il faut déchiffrer/chiffrer manuellement le fichier à chaque utilisation. Sympa, mais au bout d'un moment on a tendance a "oublier" de rechiffrer le fichier après utilisation.

Heureusement il existe une méthode ultime pour ça... avec openssl... et VIM ;-)
Il existe un plugin VIM nommé "openssl.vim" qui répond parfaitement à ce besoin. Ce plugin "hook" les ouvertures et enregistrements de fichiers en appelant openssl pour respectivement déchiffrer et chiffrer le fichier avant utilisation. Pratique non? L'installation est très simple, il vous suffit de télécharger le plugin ici et de le copier dans votre répertoire ~/.vim/plugin.

Il suffit maintenant de créer un fichier avec (au choix) l'extension: des3, aes, bf, bfa, idea, cast, rc2, rc4, ou rc5 en fonction de l'algo choisi. Lors de l'enregistrement du fichier une clé vous sera demandé afin de chiffrer celui-ci. A l'ouverture, il faudra saisir la clé afin d'avoir accès au contenu.

07août 2009

En vrac - Retour de vacances

29juil. 2009

LaTeX le retour

J'ai très souvent utilisé LaTeX pour rédiger des rapports. Cet outil génère vraiment des documents de qualité exemplaire. Ce n'est que très récemment, à l'occasion de la traduction du tutoriel "Learn Python in 10 minutes" que j'ai relancé mon éditeur préféré. Sous mac, j'utilise la distribution MiKTeX et l'éditeur TexShop. TexShop facilite grandement la création des documents LaTex. Un fois lancé, en quelques clics je génère un template pour un document de type "article" (voici ce que ça donne). J'ajoute la balise "\usepackage[latin1]{inputenc}" en début de document pour le support des caractères accentués et hop, c'est parti.
Il existe de nombreux tutoriaux pour LaTeX sur internet . J'ai même trouvé des "cheatsheet".

27juil. 2009

Sauvegarder ses données avec arRsync

Inutile de rappeler l'importance de sauvegarder de ses données ;-) Un ptit crash de disque dur et hop, adieu les photos de vacances, vidéos, mp3... Étant toujours sous Mac OS Tiger, je n'ai pas droit à la "Time Machine" et autre joyeusetés réservées aux possesseur de Leopard. C'est pas bien grave, je fais mes sauvegardes avec arRsync et ça marche vraiment très bien. arRsync est une interface graphique pour le logiciel Rsync. Voici comment paramétrer arRsync pour la sauvegarde de vos données sur un disque dur externe. C'est rapide, simple... alors pas d'excuses!

  • - Télécharger arRsync ici et l'installer.
  • - Créer un répertoire dédié aux sauvegardes sur le disque dur externe
  • - Lancer arRsync
  • - Aller dans le menu File / New
  • - Ajouter des dossiers à sauvegarder en cliquant sur File/Folder: "Browse"
  • - Sélectionner le répertoire précédemment créé comme destination en cliquant sur Destination: "Browse"
  • - Valider en cliquant sur "Add"
  • - Dans la fenêtre principale, cliquer sur "Option"
  • - cocher "Incremental Copying" - "Preserve Permissions" - "Unidirectional Backup"
  • - Dans le menu "View" sélectionner "Toggle Presets Drawer" afin de faire apparaitre la liste des profils.
  • - En bas de la liste des profils, sélectionner "Save as" et nommer le profil
  • - Pour lancer la sauvegarde, cliquer sur le bouton "Run"
  • - Lors du prochain lancement du logiciel, sélectionner le profil, cliquer sur "Load" et lancer une nouvelle sauvegarde en cliquant sur "Run"

26juil. 2009

Python en 10 minutes

"Learn Python in 10 minutes", c'est le titre (aguicheur?) de ce billet publié par Poromenos. Plutôt adapté au développeur lambda souhaitant passer à Python, ce petit tutoriel de quelques ligne m'a bien aidé lorsque je me suis lancé. L'essentiel est dit et le tout est accompagné de très bons exemples de code. Que demander de plus? Une version française peut-être?
Bon, je me suis lancé dans la traduction pendant ces vacances et voici le résultat. Dites-moi ce que vous en pensez ;-)

"Learn Python in 10 minutes" en français . Le source LaTeX est disponible ici.

Ce document est publié sous licence Creative Commons Attribution-Share Alike 3.0.

17juil. 2009

RMLL 2009 à Nantes



D'autres photos "de touriste" ici

14juil. 2009

Crypter un fichier avec GnuPG

Il est possible d'utiliser GnuPG afin de crypter un fichier. Pratique pour crypter sa base de données de mots de passe par exemple.

  • - (optionnel) génération de la paire de clés: gpg --gen-key
  • - crypter le fichier: gpg -e -r utilisateur fichier
  • - décrypter le fichier: gpg -d -o fichier_destination fichier.gpg

23juin 2009

Juniper ScreenOS - Capture de paquets avec Snoop

Je suis un grand fan de tcpdump ;-) Sa simplicité, ses filtres, la possibilité de faire des captures utilisables avec plein d'autres outils... Mais voilà, au boulot, j'utilise maintenant des Firewalls Juniper de type SSG (5/20/140) et... pas de tcpdump bien évidemment. arg.

Heureusement il existe un équivalent, "Snoop".

Exemple d'utilisation:

  • - On ajoute un filtre: snoop filter ip src-ip 10.1.1.1 dst-ip 192.168.2.1
  • - On vérifie qu'il a bien été mis en place: snoop info
  • - Il est en place, mais il faut activer les filtres snoop: snoop filter on
  • - Lancement de la capture: snoop
  • - Arrêt de la capture: snoop off (ou "esc")
  • - Afficher le contenu de la capture: get db stream


bon, c'est pas aussi facile d'utilisation de tcpdump mais c'est déjà pas mal...

29avr. 2009

Bash : remplacer une souschaine

  • ${string/substring/replacement} Replace first match of $substring with $replacement
  • ${string//substring/replacement} Replace all matches of $substring with $replacement
  • ${string/#substring/replacement} If $substring matches front end of $string, substitute $replacement for $substring
  • ${string/%substring/replacement} If $substring matches back end of $string, substitute $replacement for $substring

09déc. 2008

map VIM pour python

Pour exécuter le script python en cours d'édition avec la touche de fonction F5, ajouter au fichier vimrc:

map <F5> :!python %<CR>

04déc. 2008

Campagne d'adhésion à l'APRIL

Je suis adhérent, et vous?

Promouvoir et soutenir le logiciel libre

15nov. 2008

Les Collections Java

L'interface List
Méthodes utiles pour les List: size, isEmpty, add, remove, set, get.
Éléments ordonnés par leurs index. Les List peuvent contenir des doublons. Voici trois types d'implémentations de l'interface List:

  • - ArrayList: Un tableau pouvant s'agrandir. L'accès aux éléments par leur index est performant. A utiliser si on a besoin de rapidité pour les itérations. A éviter dans le cas d'insertion ou d'effacement d'éléments.
  • - Vector: Similaire à une ArrayList. Le Vector est synchronisé et peut être utilisé par plusieurs processus sans aucun risques. Utiliser de préférence une ArrayList plutôt qu'un Vector car le fait d'être synchronisé a un impact sur les performances. De plus, cette classe est plutôt ancienne et sa compatibilitée pas toujours assurée.
  • - LinkedList: Les éléments sont ordonnés par la position de leur index. Similaire a une ArrayList excepté que les les éléments sont liés les uns aux autres. Garder a l'esprit que l'itération d'une LinkedList se fait plus lentement que dans une ArrayList. A utiliser pour ses performances lors de l'insertion ou l'effacement d'éléments.



L'interface Set
Méthodes utiles pour les Set: add, remove, contains, size.
Pas de doublons, la méthode equals() se charge de déterminer si un objet est déjà présent dans le Set.

  • - HashSet: Ensemble d'éléments uniques non ordonnés et non triés. L'itération d'un HashSet ne suivra pas de règle spécifique.
  • - LinkedHashSet: version ordonnée du HashSet. A utiliser si l'ordre d'itération est important. L'itération se fera en suivant l'ordre d'ajout des éléments.
  • - TreeSet: Le éléments sont triés en fonction de leur ordre naturel. Le choix de l'ordre de tri se fait lors de la création de TreeSet.



L'interface Map
Crée un ensemble clé/valeur (tableau associatif).

  • - HashMap: Map non trié, non ordonné. Convient dans la majorité des cas. A utiliser si l'ordre d'itération n'est pas important.
  • - Hashtable: HashMap synchronisée. Un Hashtable n'autorise pas les valeurs "null" (contrairement à une HashMap).
  • - LinkedHashMap: Similaire au LinkedHashSet, ordonne les éléments selon leur ordre d'ajout.
  • - TreeMap: Les éléments sont triés en fonction de leur ordre naturel. Il est possible de définir l'ordre de tri.

08oct. 2008

Raccourcis clavier Eclipse pour Mac

Ctrl + Espace: autocompletion
Pomme + T: affiche l'arborescence d'héritage de la classe courante
Pomme + O: affiche les attributs et méthodes de la classe courante
Pomme + D: efface la ligne courante
Pomme + Shift + P: passer d'une accolade à une autre
Pomme + Shift + O: organiser les imports
Pomme + Shift + R: Recherche un fichier dans le workspace
Pomme + Shift + F: Réorganiser le format de présentation (Merci Leo!)

07juil. 2008

Serveurs d'application J2EE, tendance


ok, tomcat n'est pas une implémentation complète des spécifications J2EE... Mais ça donne quand même une idée de la tendance actuelle quand à l'adoption de ce type de serveurs par les entreprises. Rien ne semble arrêter la douce et lente progression de Jboss ;-) On ne le voit pas très bien sur la courbe, mais glassfish commence à monter. Ce serveur semble promu à un bel avenir.

30juin 2008

RMLL 2008, c'est parti !


Comme évoqué dans un précédent billet, je serai à Mont de Marsan pour les 9èmes rencontres mondiales du logiciel libre ;-) Alors non, je ne cèderai pas à la tentation de poster des billets en live depuis les conférences mais - dans la mesure du possible - j'essaierai de vous faire un billet par soir afin de vous faire vivre cet évènement.

27juin 2008

Headers Apache / Jboss

Apache dans sa configuration par défaut envoie une bannière descriptive de la configuration du serveur dans le header de la réponse. Il est possible de désactiver ce comportement en modifiant les deux directives suivantes:
ServerSignature Off
ServerTokens Prod

Jboss de son côté peut ajouter des informations dans la réponse HTTP. Le header X-Powered-By peut par exemple donner des informations importantes. Ce header est créé via un servlet filter activé par défaut dans la conf de tomcat. Deux solutions possibles pour désactiver ce comportement:

- mettre en commentaire le filter dans le fichier deploy/jbossweb-tomcat55.sar/conf/web.xml

<!--<filter-mapping>
<filter-name>CommonHeadersFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> -->

- modifier la conf apache afin qu'il supprime ces headers:

<LocationMatch '^/mywebap/.*'>
Header unset 'X-Powered-By'
</LocationMatch>

23juin 2008

Optimiser les valeurs wsize et rsize sur un lien NFS

Afin de trouver des valeurs wsize et rsize les plus adaptées et ainsi améliorer les vitesses de transfert sur le lien, les commandes suivantes peuvent s'avérer utiles:

pour tester la vitesse en écriture:
time dd if=/dev/zero of=/mnt/home/testfile bs=16k count=16384

et pour tester la vitesse en lecture:
time dd if=/mnt/home/testfile of=/dev/null bs=16k

- page 2 de 5 -