JJD a écrit 516 commentaires

  • # Plus d'infos ?

    Posté par  . En réponse au message Tunnel SSH à travers Proxy 8080 avec user pass. Évalué à 2.

    Bonjour,

    Il faudrait un peu plus d'infos, en particulier concernant les outils que tu as testés, pour éviter te t'envoyer sur des pistes que tu as déjà explorées.

    Quoi qu'il en soit, pour passer un proxy http, je ne connais que httptunel (avec le couple hts/htc pour le serveur et le client). J'ai testé avec un proxy squid (sans authentification) et ça semble fonctionner correctement. Les options --proxy-authorization (-A) ou --proxy-authorization-file permettent de spécifier un user/mot de passe pour le proxy, mais je n'ai jamais eu à les utiliser.

    Dans un autre domaine, si les paquets ICMP sortent de ton réseau scolaire (ping), tu peux essayer de regarder du côté de ptunel : http://www.cs.uit.no/~daniels/PingTunnel/index.html(...) .

    JJD
  • [^] # Re: T'as droit à un langage de programmation pour faire ça ? :)

    Posté par  . En réponse au message [MySQL] un GROUP BY un peu spécial. Évalué à 2.

    Salut,

    Je ne sais pas du tout comment faire ça avec une requête SQL, mais si tu exportes ta table dans un fichier (ou la sortie standard), c'est finalement assez simple à réaliser dans n'importe quel langage.

    Un petit exemple : disons que tu as tes données triées par date dans un fichier "toto", un coup de
    uniq -s27 toto

    te donneras :
    ______________________________________
    | Date | Individu |
    | 2005-06-02 12:05:00 | Pierre |
    | 2005-06-02 12:06:00 | Paul |
    | 2005-06-02 12:10:00 | Jacques |
    | 2005-06-02 12:20:00 | Pierre |
    | 2005-06-02 12:30:00 | Jacques |


    A+

    JJD
  • [^] # Re: Problème résolu

    Posté par  . En réponse au message Problème avec scp. Évalué à 1.

    Salut,

    Tu peux essayer de tester la variable $TERM avant d'exécuter le echo dans tons .bashrc avec quelque chose du genre :

    if [ x$TERM != "xdumb" ]
    then
    echo "dfsdfsdfsdf"
    fi

    Tu as dû comprendre que lors d'une connexion ssh non interactive (cas du scp) la variable TERM vaut "dumb".

    JJD
  • # Pb de droits

    Posté par  . En réponse au message Problème avec httptunnel. Évalué à 2.

    Salut,

    Avec ta commande, hts doit se mettre à l'écoute sur le port 80. Comme ce numéro de port est inférieur à 1024, seul le user root peut faire cela.
    Par ailleurs, il faut être sûr que tu n'as pas un autre processus qui utilise ce même port (Apache ou un autre serveur Web).
    Je pense que le mieux serait d'utiliser un des autres ports autorisés : assez souvent, si un accès http est ouvert on peut utiliser, en plus du port 80, les ports 8080, 443 (mais aussi en dessous de 1024), voire quelques autres (renseigne-toi auprès des admins réseau).

    JJD
  • # Nb de colonnes

    Posté par  . En réponse au message recuperer la liste des packets. Évalué à 2.

    Salut,

    Tu peux, à priori sans rien changer au reste, préciser le nombre de colonnes de la sortie en exécutant "COLUMNS=500 dpkg -l" : tu devrait alors avoir le nom du paquet en entier, ainsi que la description (avec 500 on a de la marge ...)

    A+
    JJD
  • # Unicode ?

    Posté par  . En réponse au message Accents sous aterm. Évalué à 2.

    Salut,

    Apparemment ton système est localisé en UTF8 (donc codage des caractères spéciaux et accentués sur 2 octets).
    De mémoire, il me semble que aterm ne supporte pas l'UTF8, mais ça a peut être changé. Essaie de voir dans la man de aterm s'il y a quelque chose à ce sujet.

    A+
    JJD
  • # sendmail.cf

    Posté par  . En réponse au message Sendmail et SMTP distant. Évalué à 2.

    Bonjour,

    Dans ton fichier /etc/sendmail.cf tu dois avoir une ligne avec :
    DS172.17.0.46

    Ainsi, TOUS les mails seront envoyés vers ton serveur SMTP.

    Attention cependant, le fait que tu puisses pinger B depuis A ne te garantis pas que A puisse se connecter sur B en SMTP. Pour t'en assurer, essaie plutôt, depuis A, un telnet sur le port 25 de B :
    $ telnet 172.17.0.46 25

    Si tout va bien, tu dois obtenir une réponse du serveur SMTP (ligne commençant par le code 220) et tu devrais pouvoir passer des commandes SMTP (HELO, QUIT, HELP, ...). Dans le cas contraire, il faudra vérifier les paramètres de tes firewalls/routeurs.

    JJD
  • [^] # Re: Unicode !

    Posté par  . En réponse au message sed et les accents. Évalué à 1.

    Ce n'est pas au niveau du type de tables que cela est défini, mais au moment de la création de tes tables.
    Quand tu crées la table concernée, dans la définition de ton champ tu déclares quelque chose du genre :
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8 );

    Ceci est valable pour les versions récentes de mysql (>=4.1).

    Il me semble que l'on peut également préciser la chose ainsi :
    CREATE TABLE t (c CHAR(20) UNICODE );

    je te conseille tout de même d'aller voir les documentations mysql pour plus de précisions (par exemple sur http://www.nexen.net/(...) )

    JJD
  • # Unicode !

    Posté par  . En réponse au message sed et les accents. Évalué à 1.

    Salut,

    Apparemment tes données XML sont codées en Unicode (UTF8) et pas en iso-8859-1. Cela explique que lorsque tu visualises la lettre é tu vois é (é est codé en UTF8 sur deux octets, mais tu visualises en considérant que c'est de l'iso-8859-1 et tu vois donc 2 caractères).

    Il existe, à mon avis, deux solutions à cela :
    - tu paramètres ta base de données (ou uniquement la table qui va bien) pour lui dire que les champs texte sont en UTF8.
    - tu convertis tes données XML en iso-8859-1 (avec un outil comme iconv).
    Dans les deux cas, il n'est pas forcément nécessaire de coder ensuite en HTML (mais il y a peut être d'autres contraintes).

    @+
    JJD
  • # linuxprinting.org ...

    Posté par  . En réponse au message Mandrake 10.1 Official - Epson 5800L. Évalué à 2.

    Salut,

    Avec l'imprimante branchée en USB, ce n'est pas forcément gagné : le langage de cette imprimante n'est pas standard (ni postscript, ni PCL, ...). Un pilote existe mais n'a pas été testé en USB.
    Voir le site linuxprinting.org : http://linuxprinting.org/show_printer.cgi?recnum=Epson-EPL-5800L(...)

    Bonne chance
    JJD
  • # Voilà quand même

    Posté par  . En réponse au message script shell. Évalué à 5.

    Salut,
      Je m'y suis quand même collé. Voici quelque chose qui te listera les fichiers en double (ou triple ou quadruple ou ...), indépendamment de leur nom (comparaison du hash md5) :
      #!/bin/bash
      
      [ -n "$TMPDIR" ] || TMPDIR=/tmp
      
      find /home/ -type f -exec md5sum \{\} \; | sort > $TMPDIR/doublons.$$
      
      echo "Fichiers multiples :"
      for sum in $(uniq -w32 -d $TMPDIR/doublons.$$ |cut -c-32)
      do
          echo "***********************************************"
          grep $sum $TMPDIR/doublons.$$ |cut -c35-
      done
      
      rm $TMPDIR/doublons.$$
      
      Evidemment cela risque d'être lent et de consommer un peu de mémoire (pour le sort). Si tu veux comparer aussi sur le nom, il te faudra l'extraire du nom complet (path + nom du fichier) avec basename ou des mécanismes d'expansion du shell.
        Si quelqu'un a des idées pour améliorer les performances, je suis preneur.
          A+
            JJD
          1. [^] # Re: quel est le serveur d'impression ?

            Posté par  . En réponse au message imprimante réseau sous cups. Évalué à 2.

            Un bon point de départ pour avoir des infos est le site de HP, ainsi que linuxprinting.org :
            http://www.linuxprinting.org/show_printer.cgi?recnum=HP-LaserJet_51(...)

            Sur cette page tu dois avoir un lien vers le fichier ppd qui te permettras d'avoir accès aux fonctions de ton imprimante (choix des bacs, dela résolution, ...).

            Si elle ressemble aux imprimantes HP Laser que j'ai pu voir, tu peux imprimer dessus en lpd (lpd://imprimante/port1), en http (http://imprimante:631/ipp/port1),(...) en ipp (ipp://imprimante/ipp/port1) voire même en ftp (essaie ftp adresse_imprimante).

            JJD
          2. # date ...

            Posté par  . En réponse au message mtime et format. Évalué à 3.

            Salut,

            Si tu utilises la fonction date issue des GNU core utilities (l'option -d n'est pas standard), tu peux essayer quelque chose du genre :
            date +%Y%m%d%H%M%S -d "`stat -c %y backup.sql |cut -d. -f1`"


            A+
            JJD
          3. # Paramétrage de cups

            Posté par  . En réponse au message imprimante réseau sous cups. Évalué à 4.

            Salut,

            Si ton imprimante est en réseau (avec sa propre interface ethernet), il y a de grandes chances pour qu'elle soit accessible avec le protocole lpd (au moins celui-là en particulier).
            Dans ce cas, dans cups, tu paramètres une nouvelle imprimante en choisissant un périphérique "LPD/LPR Host or Printer" et ensuite tu indiques l'URI "lpd://nom-ou-ip-de-l'imprimante/nom-de-la-fille-d'attente".

            Si tu ne connais pas le nom dela file d'attente, mets n'importe quoi, ça peut marcher.

            Pour savoir si l'imprimante accepte d'autre protocoles (ipp, http, ...), tu a plusieurs possibilités : scan des ports ouverts (avec nmap) par exemple. Tu peux aussi, plus simplement, essayer de t'y connecter avec ton navigateur web favori : essaie les URL http://nom-ou-ip-de-l'imprimante/(...) ou http://nom-ou-ip-de-l'imprimante:631/(...) (631 est le port IPP). Il est même possible que l'une de ces deux URL te donne une interface d'administration de l'imprimante.
            Autre possibilité : tu te connectes en telnet sur l'imprimante. Tu accèdera peut-être également à une interface d'administration.

            Enfin, le plus simple, au départ, serait peut être de te rapporter au manuel d'utilisation/administration/installation de l'imprimante (ou du serveur d'impression auquel elle est raccordée) : on y indique certainemant le, ou les, protocoles réseau utilisables.

            Je ne peux pas te dire grand chose de plus en ne connaissant pas le modèle de ton imprimante.

            JJD
          4. # Sans environnement

            Posté par  . En réponse au message Utiliser linux sur PC public de démonstration. Évalué à 10.

            Si l'on ne doit permettre que l'utilisation de firefox, à l'exclusion de toute autre appli, quel est l'intérêt d'un environnement de bureau ? (que ce soit Blackbox ou autre). Il est parfaitement possible de lancer simplement firefox en plein écran sous X sans aucune autre application (même pas un window manager). Il suffit d'avoir seulement 'firefox' dans un .xinitrc et de lancer X par startx -> si on quitte firefox, on sort de la session graphique (on peut alors relancer X en automatique). On peut même envisager d'avoir un .xinitrc du genre :
                while true
                do
                  firefox
                done
            ce qui évite de relancer X, mais relance firefox à chaque fois qu'on l'arrête.
          5. # netstat

            Posté par  . En réponse au message MDC Portmapper. Évalué à 3.

            Essaie de voir quels sont les processes à l'écoute sur ces ports avec "netstat -tanlp" : la dernière colonne te donnera le PID et le nom du process, ça devrait te permettre te comprendre de quoi il s'agit.
          6. # Paramétrage de cups

            Posté par  . En réponse au message comment déclarer une imprimante réseau dans CUPS. Évalué à 4.

            Salut,

            Si j'ai bien compris, tu veux que l'on puisse imprimer depuis des postes de ton réseau local sur une imprimante connectée localament (ou déclarée) sur une machine linux avec cups.

            1ère étape : tu déclares ton imprimante de façon tout à fait normale dans cups et tu vérifies que tu peux imprimer. Pour cela tu passes par l'interface web de cups (http://localhost:631(...) si ton navigateur est sur le serveur) puis "Imprimantes" et "Ajout d'imprimante".

            2ème étape : tu permets à des clients externe d'imprimer. Plusieurs choix s'offrent à toi.
            - Les clients sont capables d'utiliser le protocole IPP (Internet Printing Protocol) et il faut alors simplement que cups soit à l'écoute sur la bonne interface réseau et accepte les requêtes externes : vérifie que dans le fichier /etc/cups/cupsd.conf tu n'a pas une ligne du genre "Listen 127.0.0.1:631" (écoute seulement en local) et éventuellement rajoute ou décommente la directive "Port 631". Tu redémarres cups et ça devrait fonctionner. Enfin, il faut que sur les postes clients tu déclares l'imprimante avec les bon pilotes en indiquant l'URI de l'imprimante sous la forme ipp://ton_serveur/ton_imprimante ou http://ton_serveur:631/ton_imprimante(...)
            - Les accès à l'imprimante doivent se faire selon le protocole lpd. Il te faut alors un daemon lpd. Pour cela, tu rajoutes la ligne suivante dans /etc/inetd.conf : "printer stream tcp nowait lp /usr/lib/cups/daemon/cups-lpd cups-lpd" et tu redémarres inetd et ça devrait fonctionner. Evidemment, il faut aussi déclarer l'imprimante sur les postes clients, en précisant le serveur d'impression (ton_serveur) et le nom de la file d'attente (ton_imprimante)
            - tes postes clients sont des postes Windows et tu veux imprimer sur des imprimantes partagées (remarque que tu peux utiliser les deux protocoles précédents, ipp et lpd depuis des postes Windows). Il te faut alors un serveur Samba et tu dois mettre dans la configuration (smb.conf), les directives "printing = cups" et "printcap name = cups".

            Tout cela est bien détaillé dans l'aide en ligne de cups que tu dois avoir (tu te connectes en http sur le port 631 de ton serveur et tu cliques sur "Aide" puis "Manuel de l'administrateur").

            C'est tout !

            Bonne journée
            JJD
          7. # rar

            Posté par  . En réponse au message Décompresser une archive application/x-rar-compressed. Évalué à 2.

            Il faut installer rar.

            Le paquetage existe forcément pour ta distribution.

            Ensuite, tu continues d'utliser ark, qui devrait se débrouiller.
          8. [^] # Re: find ou for ... au choix

            Posté par  . En réponse au message faire un cp de ficher .*. Évalué à 2.

            A faire joli ?

            Bon sèrieusement, j'ai commencé ma journée à 7heures et donc après 18 heures, je fatigue ...

            Heureusement, les réponses suivantes étaient plus pertinentes.

            Je je refairai plus, promis !
          9. [^] # Re: Pour info

            Posté par  . En réponse au message Prn sous Linux. Évalué à 3.

            Je crois que quelque chose t'a échappé...
            Le fichier PPD n'est pas directement lié au langage d'impression. En revanche, il contient les instructions pour convertir le document à imprimer vers un format reconnu par l'imprimante en question (par exemple pour mon imprimante perso, une Epson, je trouve dans le fichier ppd la ligne :
            *cupsFilter: "application/vnd.cups-command 33 commandtoepson")

            L' imprimante en question supporte aussi bien le Postcript que le PCL. Sous Linux le plus simple est d'utiliser le Postcript. Normalement, si on ne tient pas à utiliser toutes les options de l'imprimante, en envoyant du postcript 'brut' il ne devrait pas il y avoir de problème. Si tu n'arrives pas à imprimer, je te conseille donc de suivre ce qu'a expliqué Benoit plus haut : tu configures dans cups une nouvelle imprimante en spécifiant une connexion lpd/lpr et en précisant le nom du serveur d'impression et de la queue (URI de périphérique de la forme lpd://adresseIP/queue) comme sous Windows.

            En aucun cas tu n'as besoin de générer un fichier qui "ressemble" à celui de Windows : d'abord tu vas envoyer du Postcript et pas du PCL, ensuite les éventuelles lignes du début (@PJL) seront rajoutés par ton serveur d'impression (cups) en fonction des options sélectionnées, si tu utilises le fichier PPD en provenance de Océ (ce que je te conseille tout de même vivement).
          10. [^] # Re: Pour info

            Posté par  . En réponse au message Prn sous Linux. Évalué à 5.

            Salut,

            Les lignes commençant par @PJL sont des commandes de paramétrage envoyées à l'imprimante (résolution, taille de papier, bacs d'entrée/sortie à utiliser, ...). De plus, j'ai l'impression que sous Windows c'est un pilote PCL qui est utilisé et pas un postscript (de nombreuses imprimantes acceptent les deux).

            Tout l'intérêt, sous Linux, d'utiliser un pilote spécifique à l'imprimante est de pouvoir envoyer ces commandes de paramétrage afin d'utiliser les options disponibles (par ailleurs ces commandes avertissent également l'imprimante du langage utilisé : quand j'imprime sur une hP4000 en Postrcript, ma machine envoie, par exemple, la ligne "@PJL ENTER LANGUAGE = POSTSCRIPT").

            Quelques pistes pour essayer de résoudre ton problème sans réinventer la poudre (c'est à dire sans avoir à réécrire un pilote) ;
            Quel serveur d'impression est-ce que tu utilises pour imprimer (lpr, cups, ...) ?
            Qu'est-ce que tu appelles une "imprimante Windows" ? (elle est reliée à une machine Windows ?)
            Quel protocole permet de joindre cette imprimante (lpr, ipp, samba, ...) ?
            Comment as-tu paramétré l'imprimante sur la machine Linux ?

            Espérant avoir pu t'aider ...

            JJD
          11. # find ou for ... au choix

            Posté par  . En réponse au message faire un cp de ficher .*. Évalué à 1.

            Bonjour,
              Un première possibilité est for : for f in /home/toto/.[^.]* ; do cp -r "$f" /home/dupond/ ; done Deuxième possibilité, avec find : find /home/toto/ -maxdepth 1 -name ".?*" -exec cp -r \{\} /home/dupond/ \; La boucle for est peut être plus lisible.
                L'intérêt de find est qu'il permet facilement de se limiter aux fichiers, en excluant donc les répertoires, si on rajoute l'option "-type f".
                  J'exécute cp avec l'option -r afin de pouvoir copier également les répertoires.
                    J'ai pas vraiment testé, mais ça devrait à peu près fonctionner (se méfier si des fichiers ont des noms avec des espaces).
                      JJD
                    1. # Les ports ...

                      Posté par  . En réponse au message Mes ports ouverts. Évalué à 5.

                      Salut,

                      Voici quelques explications pour ces ports ouverts :
                      - 22 : comme tu l'as dit c'est SSH.

                      - 631 : Internet Printing Protocol (IPP). C'est le protocole d'impression utilisé par cups. Normalement, si tu n'as rien touché à la config initiale, je pense qu'il n'est ouvert qu'en local. Tu peux t'en assurer avec 'netstat -an |grep 631'. Si tu vois une ligne avec 127.0.0.1:631 tout va bien, si tu a quelque chose du genre 0.0.0.0:631, alors le serveur est ouvert. Tu peux facilement limiter les accès avec la ligne 'Listen 127.0.0.1:631' dans /etc/cups/cupsd.conf.

                      -113 : protocole d'authentification. Ce protocole est utilisé par certains serveurs (FTP en particulier) pour interroger le client qui ouvre une connexion sur l'identité de l'utilisateur à l'origine de l'ouverture de cette connexion : par exemple le user elloco se connecte sur un serveur FTP depuis sa machine en FTP. Le serveur FTP interroge alors la machine cliente, sur le port 113, afin de connaître le user qui a ouvert la connexion et la machine cliente répond 'elloco'. A mon avis, cela ne sert à rien. Il y a de grande chances que ce service soit géré par inetd : regarde dans /etc/inetd.conf et commente la ligne commençant par "auth"

                      - 111 : c'est le port utilisé par portmap, qui est comme son nom l'indique un "Port Mapper". Schématiquement, il assigne des ports TCP à des services RPC qui s'enregistre auprès de lui et renseigne les clients sur le port utilisé par un service donné. C'est sans doute portmap qui a assigné le port suivant (712)

                      -712 : port attribué par portmap à famd (je ne peux pas en être sûr, mais j'en mettrais ma main à couper), c'est à dire le File Alteration Monitor Daemon. famd est utilisé par les navigateurs de fichiers (comme nautilus) pour être renseigné que le contenu d'un répertoire ou un fichier ont été modifiés et raffraichir l'affichage en temps réel (sans que tu aies besoin de demander un réactualisation) -> si tu arrêtes portmap, famd ne fonctionne plus. Normalement, famd est en écoute seulement en localn sauf si tu exportes des partages NFS (il doit il y avoir "local_only = true" dans /etc/fam.conf)

                      De façon générale, tu peux savoir quels sont les ports à l'écoute (et sur quelles interfaces réseau), les connexions ouvertes et les programmes qui sont derrières ces connexions avec la commande "netstat -tanp"

                      J'espère avoir été à peu près compréhensible (j'ai eu une dure journée)

                      JJD
                    2. # nogroup

                      Posté par  . En réponse au message chown: `nobody.nobody': invalid group ?!. Évalué à 3.

                      Salut,

                      Sous debian il n'y a pas de groupe nobody. En revanche, il existe un groupe 'nogroup' qui devrait faire l'affaire.

                      Essaie donc chown nobody.nogroup ...


                      JJD
                    3. [^] # Quelques explications

                      Posté par  . En réponse au message Le tout en une ligne de commmande !!!!! On peut le faire ???. Évalué à 3.

                      Je pense que j'ai buggé dans mon premier post : la bonne syntaxe est bien ${file...

                      Je précise encore que beaucoup de ces expressions peuvent ne pas fonctionner si on n'utilise pas bash.

                      Concernant l'expression ${file##+([^0-9])}, voici les explications :
                      - la variable file contient une chaîne composée de lettres et de chiffres.
                      - le "##" dit qu'il faut renvoyer la chaine $file à laquelle on aura enlevé la plus longue chaine, placée au début de $file, et correspondant au motif qui suit
                      - le motif est +([^0-9]) : c'est une chaine contenant un ou plusieurs (+) caractères NON (^) numériques (0-9)

                      Donc si $file vaut archive310114650, ça va renvoyer 310114650. Si $file vaut file310114650, ça renvoit également 310114650.

                      Cette expression devrait fonctionner avec ksh, du moins avec pdksh sur mon linux. Sur un AIX avec ksh, je viens de tester ça, qui semble fonctionner :
                      ${file##+([a-zA-Z])}
                      -> enlève tous les caractères alphabétiques du début.
                      ou alors
                      ${file##+([!0-9])}
                      (semble fonctionner également avec bash : on utilise ! pour la négation au lieu de ^)

                      Avec la syntaxe $(<expression>), on récupère la sortie standard de <expression>. Ça doit également marcher avec ksh. La syntaxe "standard" (pour sh) est plutôt `<expression>` (avec des backquotes), mais c'est un peu moins souple...

                      MORALITÉ ; les shells ont beaucoup évolué depuis sh, mais en rompant la compatibilité. On peut faire beaucoup de chose avec, mais si on veut quelque chose de portable, il faut faira TRÈS attention et tester sur les différents environnements cibles.

                      JJD