Ce portable est celui du taf, du coup pour ma machine fixe, je suis parti sur une carte NVIDIA, et oui, je sais, c'est mal... Mais y'avait pas de modèle bi écran avec carte INTEL, ca existe?
Je n'ai eu aucun souci pour faire du multi-écran avec la sortie DVI et la sortie VGA du chipset intel (GMA 4500HD) de ma carte mère gygabyte (EG45M-UD2H). Donc oui ça existe :-)
J'ai lu il y a bien longtemps, je ne sais plus où, que foreach allait être obsolète, et qu'Il fallait utiliser for à la place, du coup j'ai perdu l'habitude de l'utiliser.
Mais heureusement on peut utiliser la syntaxe de foreach :-)
for my $var (@array) {
...
}
(le my est en bonus, j'utilise le pragma strict et j'en suis fier)
Je vois le problème, mais ça ne change pas grand chose au chmilblick. Tes paquets ne partent probablement pas vers le VPN.
Ce qu'il faut, c'est que tes paquets partent vers le VPN quand tu cherche à joindre un réseau donné. Donc il te faut une règle NETMAP en PREROUTING sur la passerelle locale qui va réécrire sur un réseau (choisi pour être unique), tu met une route vers ce réseau qui transite par le VPN, et une règle PREROUTING sur la passerelle VPN distante, pour réécrire les adresses arbitraires en adresses locale (par rapport au réseau distant, je sais pas si je me fais bien comprendre...). Bien évidemment, ça ne t'exonère pas des règles de SNAT en POSTROUTING pour gérer le problème de la route retour.
Autre solution, le PBR, Policy Based Routing. Tu gères sur la passerelle locale plusieurs tables de routage (une par réseau distant), et tu utilise des règles iproute (ip rule add ...) pour envoyer les paquets dans les bonnes règles. Le problème étant que si les adresses source sont identiques pour accéder à plusieurs réseaux distants, ça va être coton pour faire des règles iproute qui conviennent...
L'avantage dans ce cas là c'est que tu n'as pas de double NAT (chose que certains protocoles risquent de ne pas apprécier).
Enfin, comme cela a été suggéré, tu peux utiliser un client openvpn sur chaque poste client, pour obtenir les adresses et routes nécessaires pour chaque réseau. Tu ne sera connecté qu'à un réseau à la fois mais ça résoud le problème. Dans la mesure ou les adresses à joindre sont des ip "internes", tu n'échapperas jamais vraiment au conflit autrement, il y aura toujours un cas pour t'embêter. Si il ne s'agit pas de connexions persistante, c'est probablement la meilleure solution, même si elle t'oblige à maintenir plusieurs configurations openvpn, à gérer les certificats et leur révocation, etc.
Ce qui devient gênant... (oui j'ai mis CustomLog et pas Custom Log pour respecter l'énoncé, mais ça marche aussi avec l'espace).
Il faut préciser que le contenu de la backréférence matche depuis le début de la ligne.
D'ailleurs, ce qui l'intéresse vraiment ici, je suppose que c'est les directives CustomLog dans la configuration apache.
Donc les lignes contenant <un espace 0 ou n fois>CustomLog<un espace un nombre quelconque de fois> et on se fiche de ce qui suit (on veut juste modifier le début).
En expression rationnelle (étendue), ça se traduit de la manière suivante :
-r permet d'utiliser les regex étendues (surtout parce que je n'ai pas l'habitude d'utiliser les simples, je ne sais jamais quoi échapper). -i de modifier les fichiers en place (non POSIX comme dit plus haut, mais sur les distribs linux et les *BSD ça devrait passer).
On utilise la backreference spéciale \& qui prend tout ce qui matche la regex, mais \1 peut faire l'affaire à condition de mettre les () qui vont bien autour de ce qui nous intéresse.
Bon quand on veut faire joujou avec sed (ou awk, ou grep, ou tout un tas d'autres), il vaut mieux apprendre à se servir des expressions rationnelles. C'est jamais perdu, surtout si on fait aussi de la conf Apache httpd ;-)
Sans aller jusqu'à se procurer Mastering Regular Expressions chez O'reilly, il existe de bons tutoriels en lignes, et man grep contient une bonne introduction (sans les backreferences, malheureusement).
Avec cette expression, on garde les espaces et tabulations qui sont au début de la ligne, ça évite de péter l'indentation.
La seconde commande NETMAP citée fonctionne probablement très bien (du moins je ne vois pas pourquoi ça ne marcherait pas, si j'en crois le man et mon expérience de Netfilter). Mais encore faut-il router les paquets à destination de la 192.168.1.0/24 vers la bonne interface... C'est à dire à travers le VPN.
Premier test à effectuer, est-tu capable de joindre l'adresse interne de ton routeur distant, 192.168.1.1 (en t'assurant qu'aucune règle de filtrage sur le routeur en question empeche le ping de répondre...) ?
tcpdump est ton ami. Si les paquets n'arrivent pas sur le routeur distant, et qu'ils ne sont pas filtrés quelque part, c'est probablement qu'il te manque la route correspondante sur ton routeur local. Si les paquets arrivent, mais que tu n'as pas de réponse au ping (toujours dans l'hypothèse selon laquelle tu n'as pas de filtrage), alors c'est qu'il te manque la route retour (autrement dit, une route vers 10.1.1.0/24 depuis le routeur distant).
Ce n'est pas ce qu'il demande. Cacti aussi fonctionne en temps réel, si il n'a pas de connexion à l'hôte monitoré, il considère qu'il est down.
Sar est une bien meilleure solution dans son cas. Cela dit je connais mal sar et les outils qui gravitent autour (notamment pour générer des graphes a posteriori, si quelqu'un a quelques liens, ça m'intéresse.
En fait ça dépend. Si on n'utilise pas gnome, ça se change dans le .gtkrc-2.0. Si on utilise gnome, c'est gconf qui gère ça (même si au fond c'est bien une feature GTK+, mais quand gconfd est démarré il va outrepasser la conf GTK+).
Peut-être, mais quand on dit auto-documenté on pense plutôt à ça :
Nom de la clef : /desktop/gnome/interface/can_change_accels
Propriétaire de la clef : gnome
Description courte : Permet la modification des raccourcis claviers
Description longue : Whether the user can dynamically type a new accelerator when positioned over an active menuitem.
Il y a une analyse relativement précise sur lesnumeriques [1] : en roaming au sein de l'UE, le Mo de données coûte 7,5€ TTC... Donc ça va vite, il suffit de 5Go (upload et download confondu) pour atteindre cette somme. Une autre hypothèse, évoquée sur 01net [2] parle d'une éventuelle erreur humaine (enregistrement du forfait 3h au lieu du forfait illimité).
Ca me paraît d'autant plus plausible que ça m'est déjà arrivé chez orange : une clef 3G illimité à 45€ HT qui provoque une facture de 700€ (ho bah désolé on s'est trompé... Enfin après plusieurs heures de menace au téléphone, et encore c'est un compte pro donc on a des moyens de pression que le particulier n'a pas, genre on ne paye rien tant que vous avez pas réglé ça)
Bon heureusement pour le monsieur, Orange a reconnu que son dispositif d'alerte n'a pas fonctionné, et annule la douloureuse. De plus, l'UE impose pour un système de blocage automatique gratuit quand le coût des données atteint 50€, ça devrait être appliqué en 2010 en même temps que le plafonnement du coup des connexion data à 0,80€ HT.
Acheter un windows n'est pas indispensable, ça marche plutôt bien avec Crossover Linux (environ 30~35 euros de mémoire pour la licence de base). Après c'est vrai que visio lui même est pas donné, loin de là, et que si c'est juste pour un schéma de temps en temps ça ne vaut pas le coup (sans parler du fait que c'est pas libre).
Cela dit, c'est triste à dire, mais pour les schémas de réseau je n'ai effectivement pas trouvé mieux (en fait, les solutions libres sont nettement en dessous :-/).
Le mieux est probablement de chercher du côté des logiciels de dessin vectoriel, un certain nombre ont déjà été cités : Inscape, OpenOffice Draw, XFig, Kivio...
Il y a aussi lovelychart.com (non testé, A priori il faut du flash). Ca peut le faire si ton besoin de confidentialité n'est pas absolu (tes données restent censément privées mais je n'irais pas créer un schéma du réseau de ma boîte avec ce truc, un réseau perso pourquoi pas).
En tout cas si quelqu'un arrive à trouver un outil comparable à MS Visio (même restreint aux diagrames réseau), je suis très intéressé. Peut-être qu'il ne faut pas se restreindre aux outils WYSIWIG, mais plutôt chercher un outil non interactif.
En fait c'est « illimité en temps, limité à 1Go en données ». Cela dit il me semblait qu'ils se contentaient de brider la bande passante pour la suite, mais je confond peut-être avec SFR.
Sachant que si je ne m'abuse, la consultation de mails (pop3/imap) est comptabilisé à part et « ne fait pas partie du forfait internet » (sauf dans leurs version SSL sur les port 995 et 993).... De même que la VoIP qui est tout bonnement interdite.
D'ailleurs, en dehors de chez Orange Business Service, l'AP est bridé à certains ports) et il y a au moins un NAT, voire un proxy pour le web. Et ils osent appeler ça « internet »...
si le reste du script est en shell c'est un peu dommage de faire du awk (quoique ça paraîtra parfois plus simple que de faire un pipe nommé, mais ça fait un interpréteur de plus).
Par contre si l'essentiel du script se résumé à ça, c'est en effet une solution plus élégante que le pipe nommé (perso je suis une loutre en awk alors j'y pense rarement au dela du one-liner jetable).
un sous-shell créé pour un pipe c'est dans la définition même du fonctionnement d'unix, alors si tu veux contourner ça .... ça va être coton).
Pas nécessairement. Le problème vient plus du while des shells bourne que du pipe. avec ksh ou zsh, il n'y a qu'un sous-shell dans ce cas là, et pas un par itération. Du coup, pas de problème. Pas de chance, POSIX a choisi la façon d'agir de sh...
Cela dit, pour un contournement sans fichier temporaire, cf mon post plus bas :-)
On aura pas du tout les même résultats avec une carte Marvell et une carte Intel, par exemple, tout simplement parce que la carte Intel fait énormément de boulot elle-même (et que le driver est bien écrit, pas trop d'interruptions, etc).
C'est donc à prendre en compte dans les tests.
En fonction de la quantité de règles, et de la mémoire disponible, il y a des paramètres iptables à ajuster. Notamment, par défaut, les tables de conntrack sont stockées dans une table de hash dont chaque élément contient 8 entrée de conntrack. On peut beaucoup accélérer les choses en n'en stockant qu'une par hash, et en augmentant le nombre de hash utilisables (qui est calculé en fonction de la mémoire mais qui plafonne assez vite). Tout se fait à coup de sysctl et d'options de modules, voir http://www.wallfire.org/misc/netfilter_conntrack_perf.txt
Enfin, il faut prendre garde à évaluer non seulement la bande passante, mais aussi et surtout le nombre de paquets par seconde : c'est comme ça qu'on évalue les performances d'un routeur.
Dans les tests, je te suggère de prévoir plusieurs jeux de paquets (a rejouer avec tcpreplay, plusieurs fois, pour lisser les résultats et éviter les gags du genre cron qui tourne, phases de la lune, rafale de neutrinos, etc). Parmi eux, prévoir du NAT, plusieurs IP internes si possible, et plusieurs "profils" (petits paquets, gros paquets, avec ou sans fragmentation, grand nombre de connexions genre p2p...).
Moi je trouve que c'est une bonne question, y'a plein de raisons qui poussent à utiliser un shell en particulier dans des circonstances particulières.
Il ne va pas non plus passer plus de temps à poser la question et nous pondre un roman sur le contexte qu'il n'en a passé à écrire le script, alors que son problème n'est pas "réaliser telle opération", mais "contourner une limite des shell bourne", à savoir la création de sous-shell en cas de pipe... C'est typiquement le genre de question intelligente et dont les réponses peuvent servir à d'autres que j'aime voir dans les forums.
de plus, il a bien précisé que la solution bash ne lui convenait pas, puisqu'il voulait utiliser dash. Ce qu'il lui faut c'est une solution POSIX, qui marche quel que soit le shell.
À ce compte là on peut aussi dire que ce problème ne se poserait pas avec ksh ou zsh, puisqu'ils ne créent pas de sous-shell pour les pipes.
Franchement la question est pertinente, le coup du pipe et des variables locales c'est tordu.
Répondre un STFW (ou un RTFM) c'est un peu rude.
meuh si on peut... Il suffit de positionner l'IFS à newline (voire à null dans les cas extreme, mais encore faut-il que ton programme en entrée soit prévu pour).
BACKUPIFS=$IFS
IFS=$'\n'
for trucmuche in $($script); do
...
done
IFS=$BACKUPIFS
(note : si tu n'a pas modifié l'IFS avant, unset IFS est plus simple que la sauvegarde / restauration).
Bon cela dit, c'est pas toujours une bonne solution, parce que si tu as plus de résultats que ton shell ne prend d'arguments, ça foire... Le while read est donc une solution bien plus élégante.
Dans ce cas là, tu peux utiliser un pipe nommé : ça complexifie un peu, parce qu'il faut le créer (et donc le supprimer, comme un fichier temporaire). L'avantage, c'est que c'est juste un fichier device en mode caractère et donc qu'il n'y a pas d'écriture sur disque.
C'est là qu'on voit tout l'intérêt du bon usage de la ponctuation. Une virgule bien placé, et hop, l'ambiguïté disparaît. Et en plus, c'est bien plus proche de la version parlée.
Bref j'en peux plus. Je regarde régulièrement l'avancée des pilotes libres, surtout du côté de AMD qui semblait s'être engagé dans cette voie. Ça ne bouge pas depuis au moins deux ans.
Heu, tu es sûr d'avoir les bonnes sources d'information ? Regarde du côté de http://www.phoronix.com/ par example. Les drivers libres pour les cartes AMD, ça bouge. DRM, KMS, Gallium3D... Les cartes les plus récentes ne sont peut-être pas encore supportées, mais ça va venir.
régression, régression... En terme de performances, oui. En terme de sécurité des données en cas de crash, il y a un fameux progrès (oui, il faut lire l'article jusqu'au bout).
D'ailleurs, si on a un controleur disque avec une batterie pour assurer le commit des données en cache (les controleur raid de serveur par exemple), on peut passer outre la protection supplémentaire avec une simple option de montage (nobarrier). Enfin, on parle d'ext4 uniquement.
Bon, en fait c'est pour la bonne cause, il s'agit d'éviter un risque de perte de données dans certaines circonstances... Et si on a le matos kivabien (genre un controleur raid matériel avec une batterie chargée), on a la possibilité de contourner le souci avec un -o nobarrier au montage.
(Pour la petite histoire, ils ont pu tracer le problème en bricolant leur suite de benchmark pour recompiler chaque révision du git, rebooter sur le noyau et relancer le test, je trouve ça magnifique dans le genre « je suis obstiné mais flemmard, je vais écrire quelques centaines de lignes de code histoire que ma machine bosse sans moi »).
j'ajouterai, avec les API qui vont bien (GSSAPI, SPNEGO selon qu'on soit dans le libre ou chez microsoft). Après pour les citrix et compagnie, j'ai peur qu'il faille se tourner vers les usines à gaz propriétaires...
# bi-ecran et chipset intel
Posté par nodens . En réponse au journal Intel: Ca commence à être pas mal, Firefox: Ca continue à faire chier. Évalué à 2.
Je n'ai eu aucun souci pour faire du multi-écran avec la sortie DVI et la sortie VGA du chipset intel (GMA 4500HD) de ma carte mère gygabyte (EG45M-UD2H). Donc oui ça existe :-)
[^] # Re: boucles
Posté par nodens . En réponse au message Avoir l'entier de la division. Évalué à 2.
Mais heureusement on peut utiliser la syntaxe de foreach :-)
for my $var (@array) {
...
}
(le my est en bonus, j'utilise le pragma strict et j'en suis fier)
[^] # Re: Règle PREROUTING avec filtre sur l'interface d'entrée
Posté par nodens . En réponse au message iptables et réseaux non routables. Évalué à 1.
Ce qu'il faut, c'est que tes paquets partent vers le VPN quand tu cherche à joindre un réseau donné. Donc il te faut une règle NETMAP en PREROUTING sur la passerelle locale qui va réécrire sur un réseau (choisi pour être unique), tu met une route vers ce réseau qui transite par le VPN, et une règle PREROUTING sur la passerelle VPN distante, pour réécrire les adresses arbitraires en adresses locale (par rapport au réseau distant, je sais pas si je me fais bien comprendre...). Bien évidemment, ça ne t'exonère pas des règles de SNAT en POSTROUTING pour gérer le problème de la route retour.
Autre solution, le PBR, Policy Based Routing. Tu gères sur la passerelle locale plusieurs tables de routage (une par réseau distant), et tu utilise des règles iproute (ip rule add ...) pour envoyer les paquets dans les bonnes règles. Le problème étant que si les adresses source sont identiques pour accéder à plusieurs réseaux distants, ça va être coton pour faire des règles iproute qui conviennent...
L'avantage dans ce cas là c'est que tu n'as pas de double NAT (chose que certains protocoles risquent de ne pas apprécier).
Enfin, comme cela a été suggéré, tu peux utiliser un client openvpn sur chaque poste client, pour obtenir les adresses et routes nécessaires pour chaque réseau. Tu ne sera connecté qu'à un réseau à la fois mais ça résoud le problème. Dans la mesure ou les adresses à joindre sont des ip "internes", tu n'échapperas jamais vraiment au conflit autrement, il y aura toujours un cas pour t'embêter. Si il ne s'agit pas de connexions persistante, c'est probablement la meilleure solution, même si elle t'oblige à maintenir plusieurs configurations openvpn, à gérer les certificats et leur révocation, etc.
[^] # Re: sed recherche/remplace
Posté par nodens . En réponse au message Ajouter un commentaire au debut d'une ligne dans un fichier avec sed. Évalué à 2.
Mais la ligne de commande devrait être correcte :-)
[^] # Re: sed recherche/remplace
Posté par nodens . En réponse au message Ajouter un commentaire au debut d'une ligne dans un fichier avec sed. Évalué à 3.
Donc la première regex se lit :
^[[:space:]]*CustomLog:[[space:]]+
et la ligne de commande sed :
sed -rie 's/^[[:space:]]*CustomLog[[:space:]]+/#\&/i' /chemin/vers/mon/fichier
[^] # Re: sed recherche/remplace
Posté par nodens . En réponse au message Ajouter un commentaire au debut d'une ligne dans un fichier avec sed. Évalué à 3.
# moncul CustomLog
Ca donnera
# moncul #CustomLog
(pas trop grave)
et sur la ligne
<Directory "/var/www/CustomLog">
Ca va donner :
<Directory "/var/www/#CustomLog">
Ce qui devient gênant... (oui j'ai mis CustomLog et pas Custom Log pour respecter l'énoncé, mais ça marche aussi avec l'espace).
Il faut préciser que le contenu de la backréférence matche depuis le début de la ligne.
D'ailleurs, ce qui l'intéresse vraiment ici, je suppose que c'est les directives CustomLog dans la configuration apache.
Donc les lignes contenant <un espace 0 ou n fois>CustomLog<un espace un nombre quelconque de fois> et on se fiche de ce qui suit (on veut juste modifier le début).
En expression rationnelle (étendue), ça se traduit de la manière suivante :
^:space:*CustomLog:space:+
Ce qui nous donne :
sed -rie 's/^:space:*CustomLog:space:+/#\&/i'
-r permet d'utiliser les regex étendues (surtout parce que je n'ai pas l'habitude d'utiliser les simples, je ne sais jamais quoi échapper). -i de modifier les fichiers en place (non POSIX comme dit plus haut, mais sur les distribs linux et les *BSD ça devrait passer).
On utilise la backreference spéciale \& qui prend tout ce qui matche la regex, mais \1 peut faire l'affaire à condition de mettre les () qui vont bien autour de ce qui nous intéresse.
Bon quand on veut faire joujou avec sed (ou awk, ou grep, ou tout un tas d'autres), il vaut mieux apprendre à se servir des expressions rationnelles. C'est jamais perdu, surtout si on fait aussi de la conf Apache httpd ;-)
Sans aller jusqu'à se procurer Mastering Regular Expressions chez O'reilly, il existe de bons tutoriels en lignes, et man grep contient une bonne introduction (sans les backreferences, malheureusement).
Avec cette expression, on garde les espaces et tabulations qui sont au début de la ligne, ça évite de péter l'indentation.
Enfin, avec le /i final on ignore la casse
[^] # Re: Règle PREROUTING avec filtre sur l'interface d'entrée
Posté par nodens . En réponse au message iptables et réseaux non routables. Évalué à 2.
La seconde commande NETMAP citée fonctionne probablement très bien (du moins je ne vois pas pourquoi ça ne marcherait pas, si j'en crois le man et mon expérience de Netfilter). Mais encore faut-il router les paquets à destination de la 192.168.1.0/24 vers la bonne interface... C'est à dire à travers le VPN.
Premier test à effectuer, est-tu capable de joindre l'adresse interne de ton routeur distant, 192.168.1.1 (en t'assurant qu'aucune règle de filtrage sur le routeur en question empeche le ping de répondre...) ?
tcpdump est ton ami. Si les paquets n'arrivent pas sur le routeur distant, et qu'ils ne sont pas filtrés quelque part, c'est probablement qu'il te manque la route correspondante sur ton routeur local. Si les paquets arrivent, mais que tu n'as pas de réponse au ping (toujours dans l'hypothèse selon laquelle tu n'as pas de filtrage), alors c'est qu'il te manque la route retour (autrement dit, une route vers 10.1.1.0/24 depuis le routeur distant).
[^] # Re: mauvaise solution, mais vrai probleme
Posté par nodens . En réponse au message Petites precision demandées sur les solutions de supervision. Évalué à 2.
Sar est une bien meilleure solution dans son cas. Cela dit je connais mal sar et les outils qui gravitent autour (notamment pour générer des graphes a posteriori, si quelqu'un a quelques liens, ça m'intéresse.
[^] # Re: c'est pas gnome c'est gtk
Posté par nodens . En réponse au message Qui a dit que gnome n'était pas configurable ?. Évalué à 2.
[^] # Re: Regedit
Posté par nodens . En réponse au message Qui a dit que gnome n'était pas configurable ?. Évalué à 3.
Nom de la clef : /desktop/gnome/interface/can_change_accels
Propriétaire de la clef : gnome
Description courte : Permet la modification des raccourcis claviers
Description longue : Whether the user can dynamically type a new accelerator when positioned over an active menuitem.
Le tout visible avec gconf-editor, par exemple.
[^] # Re: Comment ça se peut ?
Posté par nodens . En réponse au journal Chez mandarin, un forfait illimité à 90 euros peut produire une facture à 45000 euros. Évalué à 7.
Ca me paraît d'autant plus plausible que ça m'est déjà arrivé chez orange : une clef 3G illimité à 45€ HT qui provoque une facture de 700€ (ho bah désolé on s'est trompé... Enfin après plusieurs heures de menace au téléphone, et encore c'est un compte pro donc on a des moyens de pression que le particulier n'a pas, genre on ne paye rien tant que vous avez pas réglé ça)
Bon heureusement pour le monsieur, Orange a reconnu que son dispositif d'alerte n'a pas fonctionné, et annule la douloureuse. De plus, l'UE impose pour un système de blocage automatique gratuit quand le coût des données atteint 50€, ça devrait être appliqué en 2010 en même temps que le plafonnement du coup des connexion data à 0,80€ HT.
[1] http://www.lesnumeriques.com/news_id-11727.html
[2] http://www.01net.com/editorial/508652/quand-orange-facture-4(...)
[^] # Re: esssaye ça
Posté par nodens . En réponse au message Schemas reseaux.... Évalué à 2.
Cela dit, c'est triste à dire, mais pour les schémas de réseau je n'ai effectivement pas trouvé mieux (en fait, les solutions libres sont nettement en dessous :-/).
Le mieux est probablement de chercher du côté des logiciels de dessin vectoriel, un certain nombre ont déjà été cités : Inscape, OpenOffice Draw, XFig, Kivio...
Il y a aussi lovelychart.com (non testé, A priori il faut du flash). Ca peut le faire si ton besoin de confidentialité n'est pas absolu (tes données restent censément privées mais je n'irais pas créer un schéma du réseau de ma boîte avec ce truc, un réseau perso pourquoi pas).
En tout cas si quelqu'un arrive à trouver un outil comparable à MS Visio (même restreint aux diagrames réseau), je suis très intéressé. Peut-être qu'il ne faut pas se restreindre aux outils WYSIWIG, mais plutôt chercher un outil non interactif.
[^] # Re: Il y a illimité... et illimité par Mandarine
Posté par nodens . En réponse au journal Chez mandarin, un forfait illimité à 90 euros peut produire une facture à 45000 euros. Évalué à 4.
Sachant que si je ne m'abuse, la consultation de mails (pop3/imap) est comptabilisé à part et « ne fait pas partie du forfait internet » (sauf dans leurs version SSL sur les port 995 et 993).... De même que la VoIP qui est tout bonnement interdite.
D'ailleurs, en dehors de chez Orange Business Service, l'AP est bridé à certains ports) et il y a au moins un NAT, voire un proxy pour le web. Et ils osent appeler ça « internet »...
[^] # Re: Reprend les bases
Posté par nodens . En réponse au message shell : pipe et variable locale. Évalué à 2.
Par contre si l'essentiel du script se résumé à ça, c'est en effet une solution plus élégante que le pipe nommé (perso je suis une loutre en awk alors j'y pense rarement au dela du one-liner jetable).
[^] # Re: Reprend les bases
Posté par nodens . En réponse au message shell : pipe et variable locale. Évalué à 3.
Pas nécessairement. Le problème vient plus du while des shells bourne que du pipe. avec ksh ou zsh, il n'y a qu'un sous-shell dans ce cas là, et pas un par itération. Du coup, pas de problème. Pas de chance, POSIX a choisi la façon d'agir de sh...
Cela dit, pour un contournement sans fichier temporaire, cf mon post plus bas :-)
# Mon expérience à moi
Posté par nodens . En réponse au message Pare-feu Linux - test de charge. Évalué à 6.
On aura pas du tout les même résultats avec une carte Marvell et une carte Intel, par exemple, tout simplement parce que la carte Intel fait énormément de boulot elle-même (et que le driver est bien écrit, pas trop d'interruptions, etc).
C'est donc à prendre en compte dans les tests.
En fonction de la quantité de règles, et de la mémoire disponible, il y a des paramètres iptables à ajuster. Notamment, par défaut, les tables de conntrack sont stockées dans une table de hash dont chaque élément contient 8 entrée de conntrack. On peut beaucoup accélérer les choses en n'en stockant qu'une par hash, et en augmentant le nombre de hash utilisables (qui est calculé en fonction de la mémoire mais qui plafonne assez vite). Tout se fait à coup de sysctl et d'options de modules, voir http://www.wallfire.org/misc/netfilter_conntrack_perf.txt
Enfin, il faut prendre garde à évaluer non seulement la bande passante, mais aussi et surtout le nombre de paquets par seconde : c'est comme ça qu'on évalue les performances d'un routeur.
Dans les tests, je te suggère de prévoir plusieurs jeux de paquets (a rejouer avec tcpreplay, plusieurs fois, pour lisser les résultats et éviter les gags du genre cron qui tourne, phases de la lune, rafale de neutrinos, etc). Parmi eux, prévoir du NAT, plusieurs IP internes si possible, et plusieurs "profils" (petits paquets, gros paquets, avec ou sans fragmentation, grand nombre de connexions genre p2p...).
Mais ce genre de bench est toujours intéressant.
[^] # Re: Reprend les bases
Posté par nodens . En réponse au message shell : pipe et variable locale. Évalué à 3.
Moi je trouve que c'est une bonne question, y'a plein de raisons qui poussent à utiliser un shell en particulier dans des circonstances particulières.
Il ne va pas non plus passer plus de temps à poser la question et nous pondre un roman sur le contexte qu'il n'en a passé à écrire le script, alors que son problème n'est pas "réaliser telle opération", mais "contourner une limite des shell bourne", à savoir la création de sous-shell en cas de pipe... C'est typiquement le genre de question intelligente et dont les réponses peuvent servir à d'autres que j'aime voir dans les forums.
[^] # Re: Reprend les bases
Posté par nodens . En réponse au message shell : pipe et variable locale. Évalué à 2.
À ce compte là on peut aussi dire que ce problème ne se poserait pas avec ksh ou zsh, puisqu'ils ne créent pas de sous-shell pour les pipes.
Franchement la question est pertinente, le coup du pipe et des variables locales c'est tordu.
Répondre un STFW (ou un RTFM) c'est un peu rude.
[^] # Re: Reprend les bases
Posté par nodens . En réponse au message shell : pipe et variable locale. Évalué à 7.
BACKUPIFS=$IFS
IFS=$'\n'
for trucmuche in $($script); do
...
done
IFS=$BACKUPIFS
(note : si tu n'a pas modifié l'IFS avant, unset IFS est plus simple que la sauvegarde / restauration).
Bon cela dit, c'est pas toujours une bonne solution, parce que si tu as plus de résultats que ton shell ne prend d'arguments, ça foire... Le while read est donc une solution bien plus élégante.
Dans ce cas là, tu peux utiliser un pipe nommé : ça complexifie un peu, parce qu'il faut le créer (et donc le supprimer, comme un fichier temporaire). L'avantage, c'est que c'est juste un fichier device en mode caractère et donc qu'il n'y a pas d'écriture sur disque.
#/bin/dash
script="/bin/ls"
TMPDIR=$(mktemp -dt script.XXXXXX)
FIFO=$TMPDIR/script.pipe
trap "rm -rf $TMPDIR" EXIT
mkfifo $FIFO
$script > $FIFO &
COUNT=0
while read trucmuche; do
COUNT=$(($COUNT +1))
done < $FIFO
echo $COUNT
[^] # Re: question subsidiaire
Posté par nodens . En réponse au journal Les Anglais et l'euro. Évalué à 4.
[^] # Re: Précision
Posté par nodens . En réponse au journal Déguisement de Tux. Évalué à 7.
[^] # Re: Garder sa 3DFX ?
Posté par nodens . En réponse à la dépêche Intel ne maintient plus le pilote Linux Poulsbo depuis un an et demi. Évalué à 5.
Heu, tu es sûr d'avoir les bonnes sources d'information ? Regarde du côté de http://www.phoronix.com/ par example. Les drivers libres pour les cartes AMD, ça bouge. DRM, KMS, Gallium3D... Les cartes les plus récentes ne sont peut-être pas encore supportées, mais ça va venir.
[^] # Re: performance du 2.6.32
Posté par nodens . En réponse au journal Où il est question de BFS, d' x264 et de performance du noyau. Évalué à 3.
D'ailleurs, si on a un controleur disque avec une batterie pour assurer le commit des données en cache (les controleur raid de serveur par exemple), on peut passer outre la protection supplémentaire avec une simple option de montage (nobarrier). Enfin, on parle d'ext4 uniquement.
# A propos du 2.6.32
Posté par nodens . En réponse à la dépêche Des nouvelles du noyau Debian. Évalué à 3.
Bon, en fait c'est pour la bonne cause, il s'agit d'éviter un risque de perte de données dans certaines circonstances... Et si on a le matos kivabien (genre un controleur raid matériel avec une batterie chargée), on a la possibilité de contourner le souci avec un -o nobarrier au montage.
(Pour la petite histoire, ils ont pu tracer le problème en bricolant leur suite de benchmark pour recompiler chaque révision du git, rebooter sur le noyau et relancer le test, je trouve ça magnifique dans le genre « je suis obstiné mais flemmard, je vais écrire quelques centaines de lignes de code histoire que ma machine bosse sans moi »).
[^] # Re: kerberos ldap
Posté par nodens . En réponse au message Un SSO pas orienté web ?. Évalué à 2.