Trucs2Geek

GREP – Globally search for Regular Expression and Print it

Qui, travaillant sous Unix ou Linux, n’a jamais utilisé la commande grep? La réponse est simple il me semble: personne!!!
Pour faire simple, grep est une petite famille de 3 commandes qui permet de rechercher une chaine dans des fichiers, et d’en imprimer les lignes.
Elle n’a l’air de rien comme cela, mais c’est une commande terriblement efficace, l’une des commandes les plus utiles dans tout système Unix, avec sed et awk.

Présentation

g/RE/p signifie globally search for RE and print it où RE est un raccourci pour RegularExpression.
Pour faire ultra simple, grep est un outil qui permet de chercher une expression régulière (motif ou pattern en anglais) dans un contenu, et d’en afficher le résultat.

Expression régulière ?

Les expressions régulières, ou plus communément appelées RegEx, constituent un système puissant et rapide afin de rechercher dans des chaînes de caractères un motif (une occurrence, une autre chaine de caractères définie). On utilise les expressions régulières dans presque toutes les commandes d’administration. On peut les retrouver dans de nombreux langages comme le BASH, le PHP, Javascript, etc… ou encore dans des logiciels d’édition, comme vi, Notepad++, PsPad, etc… .
C’est pour quoi, je ne développerai pas plus sur les RegEx ici, car des livres complets existent sur ce sujet, et un article entier serait une bonne façon des aborder, plutôt que quelques lignes posées dans un paragraphe.

Fonctionnement

Ces trois commandes grep fonctionnent de la même façon.
Grep commence à lire la première ligne du fichier (ou depuis l’entrée standard si aucun fichier n’est fourni, ou si le nom – est mentionné) , la copie dans un tampon, la compare à la chaîne de recherche (le motif), et si la comparaison est valide, imprime la ligne à l’écran. Grep va ainsi répéter ce processus jusqu’à la fin du fichier (ou de l’entrée standard).

Les symboles

On va d’abord vite faire le tour des symboles que nous pouvons utiliser dans les expressions régulières.
Les caractères ^ et $ indiquent le début ou la fin d’une chaîne, et permettent donc de la délimiter.
« ^debut »: chaîne qui commence par « debut »
« fin$ »: chaîne qui se termine par « fin »

Les caractères *, + et ?, respectivement zero ou plusieurs, un ou plusieurs, un ou aucun, permettent de donner une notion de nombre.
« abc+ »: chaîne qui contient « ab » suivie de un ou plusieurs « c » (« abc », « abcc » …)
« abc* »: chaîne qui contient « ab » suivie de zero ou plusieurs « c » (« ab », « abc » …)
« abc? »: chaîne qui contient « ab » suivie de zero ou un « c » (« ab » ou « abc »)

Les accolades {,} permettent de donner des limites de nombre.
« abc{2} »: chaîne qui contient « ab » suivie de deux « c » (« abcc »)
« abc{2,} »: chaîne qui contient « ab » suivie de deux « c » ou plus (« abcc » etc..)
« abc{2,4} »: chaîne qui contient « ab » suivie 2, 3 ou 4 « c » (« abcc » .. « abcccc »)

Les parenthèses ( ) permettent de représenter une séquence de caractères.
« a(bc)* »: chaîne qui contient « a » suivie de zero « bc » ou plus

Le pipe (la barre verticale) | se comporte en tant qu’opérateur OU
« un|le »: chaîne qui contient « un » ou « le »
« (un|le) chat »: chaîne qui contient « un chat » ou « le chat »
« (a|b)* »: chaîne qui contient une suite de « a » ou de « b »

Le point . indique n‘importe quel caractère
« ^.{3}$ »: chaîne qui contient 3 caractères

Les crochets [-] définissent une liste de caractères autorisés (ou interdits).
Le signe permet quand à lui de définir un intervalle. Le caractère ^ après le premier crochet indique quand à lui une interdiction.
« [abc] »: chaîne qui contient un « a », un « b », ou un « c »
« [a-z] »: chaîne qui contient un caractère compris entre « a » et « z »
« ^[a-zA-Z] »: chaîne qui commence par une lettre
« ^[^a-zA-Z] »: chaîne qui ne commence pas par une lettre

Des exemples

Oui, parce que c’est bien beau tout cela, mais il faut aussi pratiquer. Vous imaginez qu’on ne va pas non plus faire le tour de la question, mais uniquement faire tomber les premières barrières qui pourraient vous empêcher d’utiliser grep.

Pour des exemples simples, je ne vais pas faire de copier/coller, vous en trouverez ici, et ci-dessous, certains exemple que j’utilise au bureau.

Test les Erreurs dans un fichier de log : il ne faut avoir ni des ORA- ni des PLS- :

Vérifier si une chaine de caractères est présente dans un fichier :

Fonction privée pour valider une adresse email :

Fonction de test si une chaîne de caractères est numérique :

La Famille

Je disais une petite famille, car grep est disponible en trois commandes distinctes mais toutes liées : grep, egrep et fgrep.
Egrep est identique à grep -E.
Fgrep est identique à grep -F.
Rgrep est identique à grep -r.

-E, –extended-regexp
Interpréter le MOTIF comme une expression rationnelle étendue
-F, –fixed-strings
Interpréter le MOTIF comme une liste de chaînes de caractères, séparées par des sauts de ligne. Chacune d’entre elles doit être recherchée.
-r, –recursive
Lire tous les fichiers à l’intérieur de chaque répertoire, récursivement.

 Maintenant, amusez-vous bien, mais je serais curieux de voir cela. Alors n’hésitez pas à publier vos trouvailles.

Raspberry Pi 3

Il y a quelques mois, la fondation Raspberry Pi a créée la surprise en sortant un nouveau modèle de Raspberry Pi : le Raspberry Pi Zero.
Cette semaine, c’est au tour du Raspberry Pi 3.

Des petits $ pour des millions de ventes

Le Raspberry Pi original et ses successeurs ont toujours été des mini-ordinateurs accessibles à tous, avec des prix pouvant varié de 5$ pour le Raspberry Pi ZERO, à 35$ pour le dernier Raspberry Pi 3.
Depuis 2012, des millions de personnes ont utilisé un Raspberry Pi pour acquérir leur première expérience en programmation et en développement, et créer des projets laissant libre court à leur imagination. La fondation Raspberry, c’est plus de trois millions de ventes uniquement pour le Raspberry Pi 2. Elle est passée d’une poignée de bénévoles, à plus d’une soixantaine d’employés à temps plein. Et chaque semestre, elle nous amène son lot de nouveautés.

Raspberry Pi 3

Après le Raspberry Pi Zero, fabriqué au Pays de Galles, et vendu 5$ seulement (ce qui en fait l’ordinateur le moins cher du marché devant CHIP qui est à 9$), c’est au tour du Raspberry Pi 3. Le constructeur annonce une hausse des performances de 50 à 60 % par rapport au Raspberry Pi 2 pour des applications 32 bits. Mais qu’a donc dans le ventre ce dernier du nom?

Encore plus rapide

Le Raspberry Pi 3 dispose d’un SoC 64 bits Broadcom BCM2837 ARM Cortex A53 avec quatre cœurs à 1,2 GHz.
Pour rappel, le Raspberry Pi exploite un seul ARM11 à 700 MHz, alors que le Raspberry Pi 2 exploite, quant à lui, un SoC Cortex-A7 avec quatre cœurs à 900 MHz.

raspberry_pi_3_review

Des nouveautés intéressantes

On trouve, tout comme le Raspberry Pi 2, 1 Go de LPDDR2, mais surtout, l’arrivée du Wi-Fi 802.11n et du Bluetooth 4.1 (classic et LE), ce qui n’était pas le cas auparavant. Le design du nouveau Raspberry Pi 3 reste donc très proche de celui de son prédécesseur, à la différence près de la position des LED qui ont été déplacées à côté de la carte SD, pour faire place à l’antenne.

Raspberry Pi 3 2 1

Pour le reste, la connectique ne change pas, avec un port réseau 100 Mb/s (on attends toujours le passage en Gb), un emplacement pour une carte microSD, une sortie vidéo HDMI, quatre ports USB 2.0 et un connecteur GPIO à 40 broches. Ses dimensions sont de 85 x 56 x 17 mm. Coté alimentation, la fondation Rapsberry Pi recommande l’utilisation d’un adaptateur 2.5A.

raspberry_pi_3_01

Acheter le Raspberry Pi 3

Une belle promo de lancement sur le site de Pi Hut (vite vite, dépêchez-vous, il est à 30£). Sinon, vous pourrez le commander chez Element14 pour une 40aine d’euros ou chez RS Components pour 44,30 euros (réservé aux professionnels, numéro SIRET obligatoire).

PFsense : Nat reflection

Par défaut, pfSense ne redirige pas les clients connectés en interne (réseau local) pour atteindre les ports NATtés sur les interfaces WAN.
En effet, si un client LAN tente d’accéder à un service sur le port 80 ou 443 d’un autre client NATé par son IP WAN (ou un autre port NATté), la connexion n’aboutira pas et on obtiendra une erreur de type « nom d’hôte non reconnu ». L’option NAT Reflection utilise des techniques pour rediriger ces connexions.

NAT Reflection

Afin d’accéder aux ports NATés sur l’interface WAN à partir des réseaux internes, NAT reflection doit être activé.
Pour ce faire, accédez à System > Advanced, onglet Firewall/NAT.
Sur cette page, activez le mode Pure NAT dans la section NAT Reflection mode for port forwards, et cochez les cases :
Enables the automatic creation of additional NAT redirect rules for access to 1:1 mappings of your external IP addresses from within your internal networks
et
Automatically create outbound NAT rules which assist inbound NAT rules that direct traffic back out to the same subnet it originated from.

NAT reflection dans PFsense

Utilisation

Vous avez un lapin Karotz ou Nabaztag, et avez monté un serveur local. Ce serveur est accessible pour vos amis, mais lorsque vous voulez y accéder par son adresse publique (votre interface WAN), vous tomber sans cesse sur une erreur de type « hôte inconnu ».
En activant NAT Reflection, vous pourrez accéder à votre serveur OpenJabNab depuis l’extérieur sur votre adresse IP publique, mais aussi de la même manière depuis votre réseau local.

Oreillettes bluetooth Iclever

Aujourd’hui, j’ai reçu un test plutôt sympa de la part d’un partenaire: des oreillettes Bluetooth Iclever. Génial, parce qu’entre les casques qui ne tiennent pas bien ou qui sont douloureux, ceux qui tombent des oreilles, ou qui se couvrent de cérumen… le choix est pas toujours facile.iClever_BT_ears4

Élégant tout en restant confortable

Côté design, rien à redire: discret, sobre (noir), voire élégant avec une bague en acier.
Côté technique, on peut dire que c’est plutôt excellent! Déjà, les oreillettes tiennent sans aucun problème sur les oreilles. Cela peut paraît bête dis comme ça… mais c’est pas donné à toutes les oreillettes qui, pour certaines, ont tendance à sortir dès le premier mouvement! Une fois posée, on se rend tout de suite compte que les bruits extérieurs sont très diminués et sourds, ce qui est très agréable (super isolation phonique)!

Utilisation simple

L’avantage du Bluetooth est que l’installation est très simple et rapide.
L’autonomie des oreillettes bluetooth Iclever est excellente également puisqu’elles peuvent fonctionner environ 7h. Les oreillettes mettent à peu près 2h pour charger et on sait qu’elles le sont quand elle deviennent rouges (elles sont bleues en charge).
L’utilisation est plutôt simple: un appui long pour allumer ou éteindre l’oreillette et un appui court pour lancer la lecture, mettre en pause ou répondre à un appel.

Oreillettes bluetooth Iclever iClever_BT_ears1Oreillettes bluetooth Iclever iClever_BT_ears2

Le son est quant à lui très bon et surtout clair! C’est la qualité première de ces oreillettes multifonction! La fonction kit main libre a beaucoup plu à ma conjointe qui a pu téléphoner à ses amies tout en faisant des activités ménagères sans avoir un fil gênant.

Oreillettes bluetooth Iclever iClever_BT_ears5

Verdict des oreillettes bluetooth Iclever

Je peux néanmoins apporter 2 petits bémols à ces très bonnes oreillettes (eh oui! il en faut toujours!): Le premier est le cache de charge (petit clapet en silicone) qui est assez difficile à ouvrir pour moi qui n’ai pas d’ongles!

Le deuxième est le kit main libre qui fonctionne pas très bien en toute situation… ma conjointe l’a essayé de bien des manières et lorsqu’il y a trop de vibrations (comme en trottinette), cela devient inaudible pour ceux qui sont à l’autre bout du fil! En plus, le choix du câble n’a pas été judicieux, et celui-ci transmet tous les sons qu’il génère. A cela, on peut ajouter l’effet d’occlusion. En gros, lorsque les vibrations de nos pas remontent le long de notre corps et se répercutent dans l’espace situé entre le tympan et l’écouteur. Pas toujours agréable.

A part ces 2 petits points, on peut dire que c’est une très bonne oreillette, très pratique pour avoir les mains libres, et surtout, pas trop onéreuse, disponible chez Amazon pour moins de 30€ !

Aujourd'hui, j'ai reçu un test plutôt sympa de la part d'un partenaire: des oreillettes Bluetooth Iclever. Génial, parce qu'entre les casques qui ne tiennent pas bien ou qui sont douloureux, ceux qui tombent des oreilles, ou qui se couvrent de cérumen... le choix est pas toujours facile. Élégant tout en restant confortable Côté design, rien à redire: discret, sobre (noir), voire élégant avec une bague en acier. Côté technique, on peut dire que c'est plutôt excellent! Déjà, les oreillettes tiennent sans aucun problème sur les oreilles. Cela peut paraît bête dis comme ça... mais c'est pas donné à toutes les…

Oreillettes bluetooth Iclever

Installation
Prise en main
Batterie
Design

BIEN

Très bonne oreillette très pratique pour avoir les mains libres!

Must have : la lampe MD50 de OxyLED

Aujourd’hui je vais vous présentez un produit que j’ai découvert grâce à la société Hisgadget. Je vais vous présenter la lampe de poche OxyLED MD50 de ce nouveau partenaire GeekAndMore.
Autant vous prévenir tout de suite, je ne reviendrais pas de sitôt aux lampes MagLight que j’affectionnais jusqu’à présent.

Caractéristiques techniques

Parlons technique une bonne fois pour toute avant de passer au concret.
Lampe LED
Puissance : 500 lumens
Alimentation : 3 piles AAA (LR03) ou batterie rechargeable format « 18650 »
Longueur : 13,7 cm au repos
Poids : 170g (avec piles)
Couleur : noir
Protection : IPX-6

Ainsi, avec ses 13,7 cm (quand je dis au repos, ça n’est pas une blague, il faut lire l’article jusqu’au bout!!!), cette lampe peut se glisser facilement dans un vide-poche ou un tiroir, ou simplement être posée dans un coin, histoire de l’avoir toujours à porté. Ses 170 grammes (batterie incluse) font d’elle une lampe discrète malgré sa puissance.

IPX-6

Quezako IPX6 ? Cela signifie protégé contre les forts jets d’eau de toutes directions à la lance.
Le test consiste à envoyer de l’eau de tous les côtés à travers une buse de 12,5 mm, à un débit de 100 litres / min, sous une pression de 100 kN / m2, pendant une période de 2,5 à 3 minutes, et à une distance de 3 mètres. Non seulement l’appareil doit continuer à fonctionner, mais il faut aussi qu’il ne présente pas le moindre signe d’infiltration d’eau dans l’appareil.

Un packaging de pro

Là, grosse surprise : la lampe est livrée dans une mallette, confortablement installée dans une mousse préformée. La mallette contient :
la lampe
l’alimentation électrique
le chargeur pour la batterie
la batterie
le manuel d’instruction

Le manuel d’utilisation annonce une durée de vie supérieure à 50 000 heures pour la LED. Autrement dit, elle ne devrait pas lâcher de si tôt.

Deux gros plus pour la MD50

Les plus gros avantages de cette lampe sont sans conteste la technologie LED utilisée, et son système de batterie Li-ion rechargeable.
Les LED Cree T6, sans rentrer dans les détails purement techniques, fait partie des LED les plus puissantes pour ce domaine d’utilisation.
Quant à la batterie, c’est une KY-18650 1800mAh 3.7V Li-ion livrée avec son adaptateur AC 110-240V et une base de chargeur de batterie 4.2V 500mA (il faudra environ 4-5 heures pour la recharger complètement). Pour information, ce sont les mêmes batteries utilisées dans les ordinateurs portables (quoi, vous n’avez jamais démonter une batterie d’ordinateur portable?), ou les MOD de cigarettes électroniques.

Particularités de la lampe MD50

Je disais donc, 13,7 cm au repos. Moyenne raisonnable!!!
En fait, cette lampe dispose d’un zoom à adapter en fonction de la situation. Vous pouvez utiliser le zoom de cette lampe en faisant coulisser la partie avant de la lampe, permettant de régler le focus du faisceau lumineux. Vous pourrez ainsi éclairer une zone précise ou bien une zone plus large. Rien de vulgaire, vous voyez (esprits mal placés!!!).

Le gros bouton vert derrière la lampe sert à l’allumer mais aussi à activer les différents niveaux de luminosité.
– Une première pression permet d’allumer la lampe
– Trois pressions la font clignoter
– Quatre pressions lancent un signal SOS

Prix

Inutile de se ruiner pour obtenir cette lampe. Elle est disponible à partir de 21,59€ sur Amazon.

Avis

La lampe OxyLED MD50 est à mon avis un produit réussi. Elle éclaire réellement bien, et elle tient dans la poche. L’utilisation de piles AAA est une bonne chose, car elles sont relativement bon marché, mais avoir un jeu de 2 batteries est bien plus et plus économique encore. La lampe elle même est à un prix attractif. C’est un produit à recommander sans réserve. Je l’utilise lorsque je bricole,  farfouille dans un PC, dans mon câblage, lorsque je descends à la cave, au garage, … .

OxyLED_1 OxyLED_3

OxyLED_2

Les joies de la commande telnet

Qui n’a jamais pesté alors qu’il était en train de faire le malin avec la commande telnet ?
En effet, bien pratique cette commande telnet pour tester un service UNIX ou s’amuser, mais lorsque son écran reste bloqué, on fait moins malin.

Utiliser telnet pour tester un service

Un petit exemple tout bête : vous voulez vérifier que le service que vous venez de mettre en place est bien accessible. Il suffit de faire un telnet sur son port d’écoute (ici nous testons les ports 50010 et 50050).

Pour un service qui n’est pas accessible, on aura ceci :

Et au bout de quelques (longues) secondes, vous aurez le message suivant :
telnet: Unable to connect to remote host: Connection timed out

Mais si votre service est accessible, il répondra ainsi :

Vous aurez une réponse du serveur : Connected to 192.168.1.101.

Sortir de telnet

Ok, on a fait le malin, on a montré qu’on savait tester si un service répondait.
Maintenant, essayez donc de trouver la solution pour sortir de là !!!
Pas facile hein?!

Pourtant, la solution est simple. Comme le port Salut, c’est écrit dessus : Escape character is ‘^]’.
Mais ça veut dire quoi ??? La petite astuce : le caractère tant attendu est produit par la combinaison de touches suivante :
sous Windows : Ctrl + $ ou CTRL + (
sous Linux : Ctrl + Alt Gr + ]

Et voilà.

Pourquoi parler cela ?

Tout simplement parce qu’un collègue est tombé dans le panneau, et qu’il a fallut lui montrer comment faire pour sortir proprement d’un telnet, même planté. En espérant que cette info servira à un peu plus de monde, notamment lorsque vous testerez les liens ci-dessous… .

Easter Eggs

Certains en profite pour mettre un peu de fun sur Internet, et j’avoue que je suis friand de ce genre de trucs, les Easter Eggs.

Essayer de faire un telnet towel.blinkenlights.nl 666
Vous obtiendrez des excuses sympas du genre :

the butane lighter causes the pincushioning
Decreasing electron flux
Hash table has woodworm
Digital Manipulator exceeding velocity parameters

Encore plus sympa et plein de fonctionnalités : essayez donc telnet telehack.com
Quand je dis plein de fonctionnalités, c’est que vous pouvez y passer un moment fou, car il s’agit d’une compilation d’un peu tout les Easter Eggs disponibles sous telnet.
Tapez cowsay helloo pour obtenir une vache qui dit helloo
Tapez octopus et validez, puis une touche pour obtenir sa correspondance en binaire, octal, hexa, et ascii!!!

Et vous en avez, une palanquée comme cela (60 au total), parmi lesquelles :

et si vous avez un moment, testez donc ceci : starwars
Sinon, il existe encore des vieux BBS dont une liste est disponible ici.

 En espérant vous avoir fait perdre un peu de temps… .

Installer des paquets sur pfSense

Parfois, on aimerait installer des paquets sur pfSense. Et bien c’est possible, car en plus des outils disponibles par défaut dans le système de package pfSense, des milliers de paquets de FreeBSD supplémentaires sont aussi disponibles. Un tutoriel rapide pour installer des paquets nécessaires.

Bootstrapping pkg

pfSense 2.2 est basé sur FreeBSD 10.1 et utilise aussi la commande pkg pour gérer manuellement des packages FreeBSD. Attention toutefois, il faut rappeler le but de pfSense : installer des paquets sur pfSense, ok, mais la sécurité avant tout.

pfSense® software is a free, open source customized distribution of FreeBSD specifically tailored for use as a firewall and router that is entirely managed via web interface. In addition to being a powerful, flexible firewalling and routing platform, it includes a long list of related features and a package system allowing further expandability without adding bloat and potential security vulnerabilities to the base distribution.

En effet, si une sécurité forte est souhaitée pour votre pare-feu pfSense, alors oublier cet article et n’installez pas de paquets supplémentaires. Dans le cas contraire, si vous savez où vous mettez les pieds, et que vous allez maintenir garder à jour votre système, cet article est fait pour vous.

Bon, tout d’abord, il vous faut un shell prompt (accessible depuis votre console ou en SSH, option 8 du menu). Ensuite, vous verrez, c’est un système de paquets comme rpm, ou apt, relativement simplissime!!!
ScreenShot037

Mettre à jour de la liste des paquets

Avant toute chose, il faudra mettre à jour vos metadata avant de pouvoir installer des paquets sur pfSense :

Installer des paquets sur pfSense

Maintenant que la liste des paquets est à jour, il ne vous reste plus qu’à installer celui dont vous avez besoin. Dans mon cas, j’ai besoin de rsync :

Activer le nouveau paquet

Votre paquet est maintenant installé, mais pas encore disponible!!! Pour qu’il le soit, il vous reste encore une petite commande à exécuter :

Vraiment pas compliquer d’installer des paquets sur pfSense!

Allez plus loin avec pkg

Pour aller plus loin avec la commande pkg, utilisez l’aide !!!

Vous pourrez ainsi vérifier la sécurité de vos paquets, ou chercher le paquet qui répondra à votre besoin.

Ou encore, faire une recherche si vous ne connaissez pas le nom exact du paquet à installer.

Amusez-vous bien!!!