JJD a écrit 516 commentaires

  • # Infos d'un fichier en Perl

    Posté par  . En réponse au message Mesure de taille de fichier. Évalué à 2.

    Salut,

    La fonction stat te donne toutes les infos nécessaires sur un fichier. Il suffit de faire :

    ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
    $atime,$mtime,$ctime,$blksize,$blocks)=
    stat($filename);

    pour avoir toutes les informations nécessaires.

    S'il ne faut que la taille, on peut simplement utiliser :

    $size=(stat($filename))[7]

    A+
    JJD
  • # A tester et à adapter

    Posté par  . En réponse au message extraire un term d'une colone dans un tableau. Évalué à 1.

    #!/usr/bin/perl -w

    foreach (`df -hP | tail -n +2`) {
    my @i=split;
    print "$i[0]\t($i[5])\t$i[4]\n";
    }
  • [^] # Re: tzconfig

    Posté par  . En réponse au message Problème d'heure. Évalué à 4.

    Salut,

    A moins que marsu1983 ne soit pas en France ou dans le coin, sa configuration est bonne au niveau du fuseau horaire (ben oui en horaire d'été, on est bien UTC+2.
    Le seul problème est que sa machine et/ou son système ne sont pas à l'heure. Pour régler ça, le plus simple est d'utiliser la commande "date" sous root :
    date -s MMDDhhmm

    Normalement, tout devrait bien fonctionner comme ça, avec l'OS, il me semble, qui va régler l'heure hardware au moment d'un shutdown (appel de "/etc/init.d/hwclock.sh stop")

    Tu peux aussi t'en sortir en installant ntp pour régler l'heure automatiquement sur des serveurs Internet.

    Evidemment, ces décalages de une à deux heures peuvent revenir si tu bootes parfois cette machine sous d'autres OS. En effet, l'OS peut considérer que l'heure hardware (celle du "BIOS") est soit locale sois UTC et règle l'heure système en fonction. Donc si deux OS ont des réglages différents à ce niveau, ça peut poser problème. Sous Debian, ce paramètre est indiqué dans /etc/default/rcS (variable UTC à yes ou à no).

    A+
    JJD

    PS : j'ai l'impression qu'avec la fatigue de la journée, mes explications ne sont pas très claires :-(
  • # known-host

    Posté par  . En réponse au message Mise à jour d'empreinte SSH. Évalué à 2.

    Salut,

    Tu peux supprimer une entrée de known-hosts sans te tromper en utilisant la commande :
    ssh-keygen -R <nom_du serveur_SSH>

    Cela évite d'avoir à compter les lignes...

    Il est également possible de désactiver le la hashage des noms de serveur dans known_hosts en plaçant la directive "HashKnownHosts no" dans /etc/ssh/ssh_config (config générale) ou dans ~/.ssh/config.

    A+
    JJD
  • # Points à vérifier

    Posté par  . En réponse au message ssh -X => cannot connect to X server. Évalué à 4.

    Salut,

    Les directives commentées (X11DisplayOffset et X11UseLocalhost) ne devraient normalement pas être en cause dans ce problème (leurs valeurs par défaut sont respectivement 10 et yes).
    Il faut également vérifier les points suivants :
    - il y a-t-il une directive "UseLogin yes" dans sshd_confg ? Si c'est le cas, il faut la commenter ou la passer à "no" pour que le forward X11 fonctionne.
    - le fichier /usr/bin/X11/xauth (ou celui indiqué par la directive XAuthLocation) existe-t-il et est-il bien exécutable ?
    - sur la machine cliente, la variable DISPLAY est-elle bien positionnée ?

    Est-il possible que l'un des fichiers exécutés au lancement du shell sur le serveur SSH viennent écraser la valeur de la variable DISPLAY ?
    Que se passe-t-il si tu fixes DISPLAY à la valeur "localhost:10.0" ?
    Sur le serveur, le port 6010 est-il ouvert sur l'interface loopback : il faut essayer un "telnet localhost 6010" et voir ce qu'il se passe.

    Si tout cela échoue, tu peux tenter d'exécuter le client ssh en mode bavard (-v ou -vv ou -vvv) et essayer de comprendre ce qu'il se passe (bon courage...)

    A+
    JJD
  • # RE: GPL

    Posté par  . En réponse au message Solutions basées sur l'open source, pas si open ?. Évalué à 3.

    Salut,

    En fait, la GPL n'oblige à fournir les sources modifiés que si le programme est distribué et uniquement aux personnes à qui le programme est distribué.

    Rien n'empêche un particulier ou une société d'utiliser des sources GPL et de les modifier pour son utilisation interne sans fournir ces modifications.
    Donc, effectivement, le CHU de Grenoble est en droit de t'envoyer balader si tu demandes l'accès à ces sources.

    D'un autre côté, lorsque l'on ne veut pas redistribuer ce que l'on a fait, on ne fait en général pas de publicité sur le fait d'avoir utiliser de l'open source et puis ça ne te coûte pas grand chose d'essayer.

    A+
    JJD
  • # Colaboration entre find et xargs

    Posté par  . En réponse au message Caractère spéciaux avec Xargs. Évalué à 5.

    Bonjour,

    Parallèlement aux solutions déjà proposées, il est aussi possible d'utiliser conjointement les options "-print0" de find (écriture des noms des fichiers sans modification et séparés par des caractères nul) et "-0" de xargs.
    Cela donnerait donc :
    find . -name motsclés -print0 | xargs -0 du

    Cette méthode a l'avantage de fonctionner avec tous les caractères ésotériques que peuvent contenir les noms de fichiers, y compris les sauts de ligne.

    A+
    JJD
  • # ?mask

    Posté par  . En réponse au message Retirer droit d'exécution sur les fichiers seulement !. Évalué à 6.

    Salut,

    Il suffit d'utiliser les options fmask (pour les fichiers) et dmask (pour les répertoires) au lieu de umask.

    A+
    JJD
  • # Utiliser les outils existants

    Posté par  . En réponse au message besoin d'un gros coup de pouce, orientation projet. Évalué à 2.

    Salut,

    Tu peux aussi essayer d'éviter l'usine à gaz en utilisant ce qui existe déjà.
    Bon, on va supposer que le fichier MAC contient les adresses MAC et que le fichier PORT contient les ports. Tu devrais alors pouvoir avoir à peu près ce que tu veux en trois lignes :

    cut -d. -f9-12 MAC | sort >MAC.sort
    cut -d. -f9-12 PORT | sort >PORT.sort
    join MAC.sort PORT.sort

    Ça devrait te cracher, avec les exemples que tu donnes, quelque chose du genre :

    72.169.136.214 "00 00 48 A9 88 D6 " 25
    72.171.21.223 "00 00 48 AB 15 DF " 25
    72.171.21.243 "00 00 48 AB 15 F3 " 25
    72.173.87.1 "00 00 48 AD 57 01 " 25
    72.173.87.67 "00 00 48 AD 57 43 " 25
    72.173.87.74 "00 00 48 AD 57 4A " 25
    72.173.87.83 "00 00 48 AD 57 53 " 25
    72.173.88.181 "00 00 48 AD 58 B5 " 25
    72.173.88.253 "00 00 48 AD 58 FD " 25
    72.173.88.54 "00 00 48 AD 58 36 " 25
    72.173.88.7 "00 00 48 AD 58 07 " 25
    72.173.89.126 "00 00 48 AD 59 7E " 25
    72.173.90.3 "00 00 48 AD 5A 03 " 25
    72.180.49.16 "00 00 48 B4 31 10 " 25

    avec, donc, l'adresse en décimal, l'adresse en hexa et le port.

    A+
    JJD
  • # Mode ad-hoc

    Posté par  . En réponse au message Wi-fi sans routeur ?. Évalué à 1.

    Salut,

    Pour le modèle de clé à utiliser, je ne vais pas beaucoup t'aider : sache simplement que le fait de se connecter à un routeur, un point d'accès ou directement à une autre machine n'y change rien. En cherchant un peu sur les forums tu devrais trouver les modèles de Chipset bien supportés sous Linux avec des drivers libres. A ce moment-là, tu auras fait la moitié du chemin, puisqu'il ne te restera plus qu'a chercher les modèles de clés USB WIFI intégrant les chipset en question (et vu la doc technique sur les sites des constructeurs, ce n'est pas facile facile). Enfin, si tu te plantes à l'achat, il y a tout de même de grandes chances de faire fonctionner la clé avec ndiswrapper et les pilotes Windows.

    Concernant la connexion via le partage de connexion Windows, il ne devrait en revanche pas il y avoir de soucis. Il suffit de mettre l'interface réseau WIFI en mode "Ad-Hoc" (ou poste à poste) et d'obtenir les paramètres réseau (adresse IP, passerelle, DNS, ...) en DHCP et ça devrait marcher tout seul.

    A+
    JJD
  • [^] # Re: change de disque

    Posté par  . En réponse au message Arrêt violent lors de l'extinction. Évalué à 1.

    Je trouve pas l'option...

    Ça doit être parce que je suis sous Gnome...
  • # dmidecode

    Posté par  . En réponse au message barettes de RAM. Évalué à 4.

    Salut,

    Dans le même genre d'idée que lshw, il y a aussi dmidecode qui va aller récupérer les informations du BIOS (c'est utilisé dans les procédures d'installation ou de démarrage pour détecter que le PC est un portable et par certains programmes d'inventaire de parc comme OCSInventory).

    Donc si tu exécutes (sous root)
    dmidecode -t memory
    tu devrais avoir les informations qui t'intéressent.

    A+
    JJD
  • # apt-get

    Posté par  . En réponse au message Informations sur des mises à jour. Évalué à 2.

    Salut,

    La commande "apt-get upgrade" va faire toutes les mises à jour possible sans supprimer aucun paquet, et donc sans supprimer aucune des librairies installées.
    Pour faire la mise à jour des paquets restant, il faut exécuter
    apt-get dist-upgrade

    Mais fais attention : vérifie bien ce qui va être supprimé avant de valider la mise à jour car tu peux parfaitement perdre ou casser certains logiciels (mais bon, ça devrait normalement bien se passer).

    A+
    JJD
  • # Faire simple...

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

    Salut,

    Si tu veux simplement compresser tous les fichiers d'un répertoire donné, qu'il n'y a pas de sous-répertoire et qu'il n'y a pas trop de fichiers (en gros, il ne faut pas que ça dépasse de trop les 1000 fichiers), un simple
    gzip *
    dans le répertoire voulu ou
    gzip /chemin/vers/ton/répertoire/*
    devrait suffire.
    Suivant tes goûts, tu peux remplacer gzip par compress ou bzip2, mais pas par zip (la façon de passer les arguments à zip est différente).

    S'il y a beaucoup de fichiers dans le répertoire, il reste la possibilité du xargs :
    ls -Q | xargs -n 500 gzip
    [-Q permet de bien gérer les fichiers avec des espaces dans leur nom]

    S'il faut prendre en compte les fichiers dans une arborescence, alors la solution d'omnikron me semble bien.

    Le script d'Ellendhel crée une archive compressée par fichier, ce qui me semble un peu lourd.

    A+
    JJD
  • [^] # Re: date +%x ?

    Posté par  . En réponse au message crontab avec un script. Évalué à 4.

    Salut,

    Bravo à Armand : je plussoie et j'applaudis. La question de sebj me dérangeait depuis que je l'avais lue...

    Et le pire, c'est que j'ai déjà eu le même type de problème avec cron.
    En fait, la sortie de "date +%x" dépend de la locale courante. cf le man de date :
    %x représentation de la date conforme aux paramètres régionaux

    Donc, quand sebj essaie en intéractif, avec une locale du type fr_FR, il obtient quelque chose du genre 04.04.07, alors que dans un cron (pas de locale fixée, donc "C" par défaut), "date +%x" renvoie 04/04/07.

    Moralité : dans un cron il faut éviter les commandes dont la sortie dépend de la locale (ou alors bien fixer la locale voulue).

    A+
    JJD
  • # Conversion UTF8 vers iso8859-15

    Posté par  . En réponse au message (sed)(bash). Évalué à 4.

    Salut,

    Il y a certainement plusieurs remarques à faire concernant ton script.
    Tout d'abord, chaque commande sed prend ton fichier d'entrée ($file) pour convertir un caractère unique et écrire le résultat dans $file.tmp : chaque exécution de sed vient donc écraser le fichier $file.tmp précédemment écrit. Seule la dernière exécution est donc utile (autrement dit, seule la ligne
    "sed 's/ê/ê/g' < $file > $file.tmp"
    sert à quelque chose.

    Ensuite, il faut bien savoir quelle est la locale courante en cours lorsque tu écris/visualises le script en question.

    Quoi qu'il en soit, la meilleure solution pour ce type de conversion est, comme écrit dans les deux commentaires précédents, d'utiliser iconv.
    Mais attention, comme tu veux apparemment convertir de l'utf8 en latin9, la bonne commande est celle de B.franck (la commande de LiNuCe fait la conversion inverse).
    Je te conseille tout de même de prendre comme codage de destination du latin9 (LATIN-9 ou ISO-8859-15) plutôt que du latin1 (ou ISO-8859-1).
    Evidemment, iconv ne fonctionnera que si ton fichier d'entrée est bien en UTF8. S'il y a à l'intérieur un mélange de caractère UTF8 et latin9, le résultat de la conversion avec iconv ne sera pas terrible...

    A+
    JJD
  • # RE: Installation Debian sous Toshiba A100 483

    Posté par  . En réponse au message Installation Debian sous Toshiba A100 483.. Évalué à 2.

    Salut,

    Il faudrait savoir quelle est la carte réseau avec la commande lspci.
    Normalement, sur ce matériel, ce devrait être une Intel e100 reconnue sans problème (?).
    Tu peux toujours essayer d'exécuter 'modprobe e100' pour voir ce que ça donne...

    Pour le reste du matériel (mais je pense que ça ne répondra pas à ta question concernant la carte réseau) tu peux te reporter à http://www.zenwalk.fr/forum/viewtopic.php?id=510

    A+
    JJD
  • [^] # Re: moi

    Posté par  . En réponse au message Disque externe Usb InterDiscount 80Go non reconnu. Évalué à 1.

    En plus de tout ça, la sortie de dmesg laisse penser que le device associé au disque est /dev/sda et non pas /dev/sdb.

    Que donne la commande "fdisk /dev/sda" ?

    A+
    JJD
  • # Chemin complet

    Posté par  . En réponse au message mount_smbfs / crontab sous Darwin. Évalué à 2.

    Salut,

    Il y a de grandes chances pour que le programme mount_smbfs ne soit pas dans le PATH utilisé lors de l'exécution du script en cron.

    Mets le chemin complet vers mount_smbfs et ça devrait aller mieux.

    A+
    JJD
  • # sort = trier

    Posté par  . En réponse au message tri de fichier via des champs dans le nom fichier. Évalué à 2.

    Salut,

    Ben pour avoir tes fichiers dans l'ordre, il suffit de les trier sur la date et l'heure, c'est à dire du 13ème au 27ème caractères :
    ls | sort --key=1.13,1.27

    Tu peux aussi trier sur le 2ème champ du nom, avec le point comme séparateur :
    ls | sort -t'.' --key=2

    Pour traiter les fichiers dans l'ordre, une boucle toute simple devrait suffire :
    for f in $(ls | sort -t'.' --key=2)
    do
    traitement $f
    done

    A+
    JJD
  • [^] # Re: fais un package et installe-le

    Posté par  . En réponse au message Bibliothèque dans /usr/lib et /usr/local/lib. Évalué à 1.

    Salut,

    Je suis tout à fait d'accord avec le commentaire précédent visant à refaire un package à partir des sources.

    Quoi qu'il en soit, voici tout de même l'explication concernant la recherche des librairies (tirée du man de ld.so) :

    The necessary shared libraries needed by the program are searched for
    in the following order

    o Using the environment variable LD_LIBRARY_PATH
    (LD_AOUT_LIBRARY_PATH for a.out programs). Except if the exe-
    cutable is a setuid/setgid binary, in which case it is ignored.

    o From the cache file /etc/ld.so.cache which contains a compiled
    list of candidate libraries previously found in the augmented
    library path.

    o In the default path /usr/lib, and then /lib.


    Donc, si tu veux que les librairies dans /usr/local/lib/ soient utilisées, il suffit de déclarer la variable LD_LIBRARY_PATH avant de lancer ton appli :
    export LD_LIBRARY_PATH=/usr/local/lib
    ou de lancer l'appli ainsi :
    LD_LIBRARY_PATH=/usr/local/lib /chemin/vers/ton/appli arguments ...


    A+
    JJD
  • [^] # Re: Droits en écriture

    Posté par  . En réponse au message zone commune windows/linux, pb sous KDe. Évalué à 3.

    Pour être complet, il faut bien préciser que le système de fichiers utilisé (FAT) ne permet pas de fixer ou de modifier des droits. Un chmod sur un répertoire ou un fichier du disque ainsi monté ne pourra donc pas fonctionner.

    Il est possible, en revanche, d'attribuer les droits que l'on veut au moment où l'on monte le volume en précisant les bonnes options (soit en ligne de commande, soit dans le fichier /etc/fstab). On peut ainsi attribuer le volume à un utilisateur ou un groupe particulier et fixer les droits désirés (mais ces droits seront identiques pour tous les fichiers du volume : c'est déjà plus que ce que l'on peut faire sous Windows).
    Je te conseille d'aller consulter l'aide de mount (man mount) pour avoir l'exhaustivité des options avec leur syntaxe, mais parmi les plus intéressantes on retrouve :
    - uid et gid pour fixer le user et le groupe
    - umask, fmask et dmask pour les droits sur les fichiers et les répertoires

    Il peut être intéressant également d'utiliser les options codepage et iocharset afin d'afficher correctement les noms de fichiers sous les deux systèmes (sinon, il peut il y avoir des soucis avec tous les caractères accentués).

    A+
    JJD
  • # Test ?

    Posté par  . En réponse au message Proftpd ne veut pas fonctionner !. Évalué à 1.

    Bonjour,

    L'erreur "Starting ftp server: proftpd - IPv6 getaddrinfo 'localhost' error: No address associated with hostname" ne semble pas anormale à partir du moment où tu n'est pas connecté en IPV6. Cela ne devrait pas empêcher le serveur FTP de fonctionner normalement.

    Est-ce que le process proftpd est lancé ? (ps -ef | grep proftpd)

    Est-ce que tu as testé de te connecter en local d'abord (ftp localhost) puis d'une autre machine (sur ton réseau local et depuis internet) ?
    Qu'est-ce que cela donne ?

    A+
    JJD
  • # C'est bon signe...

    Posté par  . En réponse au message Est-ce bien normal?. Évalué à 2.

    ils ont dû tout vendre !
  • [^] # Re: un tunel ssh

    Posté par  . En réponse au message Connexion SSH sans routage. Évalué à 1.

    Lorsque tu fais du port forwarding avec "-R 20000:localhost:22", le port 20000 n'est ouvert que sur l'interface de loopback : le tunnel ne fonctionne donc, comme tu l'as constaté, qu'en local.

    Pour rendre le tunnel disponible depuis des machines externes, il faut utiliser la syntaxe "-R :20000:localhost:22" (note les deux points :) ou "-R <adresse IP serveur>;20000:localhost:22".

    Il faut également que sur le serveur, l'option "GatewayPorts" soit activée dans sshd_config (ce qui n'est pas le cas, en général, dans les configurations par défaut).