Gyro Gearllose a écrit 1322 commentaires

  • # En espérant que ça aide :

    Posté par  . En réponse au message readme automatique lors d'un ls. Évalué à 3.

    Sous bash, j'ai tapé ça au prompt :

    truc() { [ -f $1/README ] && less $1/README ; ls $1 ; }

    Ca fait ce que tu demandes.
  • # Dans /etc

    Posté par  . En réponse au message Sauvegarde/restauration des users créés sur un serveur. Évalué à 4.

    Sauver les fichiers /etc/passwd, /etc/group, /etc/shadow et /etc/gshadow ? Éventuellement les éditer pour virer ce qui gêne, genre les informations relatives aux utilisateurs et aux groupes par défaut du système fraîchement installé, et les concaténer à leur équivalent du nouveau système. J'ai bon ?
    Sans avoir plus d'informations sur l'ancienne machine et sur la nouvelle, on peut difficilement conseiller autre chose.
    Il serait bon de savoir si l'identification sur la nouvelle machine se fait uniquement sur les fichiers passwd et group, ou si le système de shadow password a été installé (fichiers shadow et gshadow), ou sur d'autres systèmes :
    on peut se baser sur les yellow pages, sur un annuaire ldap, sur un contrôleur de domaine samba, etc...
    Alors, j'espère n'avoir pas trop dit de conneries, et si je suis tombé à côté, ben c'est de la faute de celui qui a posé la question : il n'a pas fourni assez d'informations.
    Ceci dit, si je suis tombé juste, je ne saurais trop que conseiller de procéder comme suit sur la nouvelle machine :
    - coller le(s) fichier(s) sus-cités dans un endroit "au chaud".
    - en faire des copies avant de les modifier
    - faire des sauvegardes des fichiers originaux situés dans /etc.
    - conserver une console sur la machine elle même en root, sans y toucher, et faire les manips ailleurs.
    Voilà, en respectant ces quelques règles, grâce à la dernière recommandation, si ça foire, y'a un point d'entrée pour tout remettre d'équerre sans utiliser un boot cd.
  • [^] # Re: Configuration > Configurer les raccourcis clavier

    Posté par  . En réponse au message Utilisation de konsole. Évalué à 1.

    Arf, c'est tellement simple que je n'y ai même pas pensé !
    En fait (honte à moi, j'ai tapé trop vite mon message ci-dessus), je souhaitais utiliser le raccourcis qui est positionné par défaut dans konqueror, à savoir Ctrl+molette pour augmenter/diminuer la taille de la police....
    En tout cas, merci pour cette piste que je vais creuser !
  • # https

    Posté par  . En réponse au sondage Pour accéder à linuxfr.org, j'utilise principalement le protocole. Évalué à 3.

    J'ai mis ça, mais en vrai, c'est https over Ipot.
    Comme le choix n'est pas proposé, j'ai mis ça.
    D'ailleurs, IPOTS aurait été un excellent protocole, non ?
  • # Bon, ben voilà...

    Posté par  . En réponse au message Récupérer les enregistrements d'un fichier.... Évalué à 2.

    J'ai cherché, et j'ai trouvé ;-) !
    Ou plutôt, j'ai codé et j'ai trouvé.
    Je joins le code, si ça en intéresse d'autres tant mieux !
    Si vous trouvez ça gruick, tant mieux !
    Si vous avez mieux à proposer, tant mieux !
    Bref, je suis ouvert à toute critique de ce code, pourvu qu'elle soit constructive.

    function getInfos ($filename)
    {
    $nlcount=0;
    $fp = fopen ($filename, "rb");
    $taille = 0;
    while ($nlcount<3) // On passe les 2 derniers retours à la ligne
    {
    fseek ($fp, --$taille, SEEK_END);
    $c = fgetc($fp);
    if ($c == "\n") $nlcount++;
    }
    $offsetXref = fgets ($fp); // On récupère l'offset de l'objet xref
    fseek ($fp, $taille, SEEK_END);
    while ( ! preg_match ("/(\/Info)/", $buf)) // On recherche la chaîne /Info
    {
    while (fgetc($fp) != "\n")
    fseek ($fp, --$taille, SEEK_END);
    $buf = fgets ($fp);
    fseek ($fp, --$taille, SEEK_END);
    }
    $buf = preg_replace ('/(.*)(\/Info.*)/', '\\2', $buf); // On récupère le numéro de l'objet info dans le fichier pdf (2nd champs).
    $tmp = explode (' ', $buf);
    $objectNumber = $tmp[1];
    // close the file
    fseek ($fp, $offsetXref);
    while ($currObject < $objectNumber) // On parcours l'objet xref
    {
    $buf = fgets ($fp);
    if (preg_match ("/(\d{10} \d{5} [nf])/", $buf)) // Pour chaque ligne valide
    {
    if (!preg_match ("/(0000000000 *)/", $buf)) // N° d'objet valide
    $currObject++;
    }
    }
    $tmp = explode (' ', $buf); // On a l'adresse de l'objet Info
    $offsetInfos = $tmp[0];
    fseek ($fp, $offsetInfos); // On s'y rend !
    fgets ($fp); // Skip object header
    unset ($buf);
    while (! preg_match ('/(>>)/', $buf)) $buf.=fgets ($fp); // on récupère les infos
    $buf = preg_replace ("/(\n)/", "", $buf); // On nettoie les infos
    $retval = preg_replace ("/(>>.*endobj)/", "", $buf);
    $retval = preg_replace ("/(<<)/", "", $retval);
    fclose($fp);
    return ($retval);
    }
    $PdfInfos = getInfos ("essai.pdf");
    $infos = explode ('/', $PdfInfos);
    while (list ($k, $v) = each ($infos))
    {
    $pdfInfos[preg_replace ('/(.*)(\(.*)/', '\\1', $v)] = preg_replace ('/(.*\()(.*)(\).*)/', '\\2', $v);
    }
    print_r ($pdfInfos);


    Voilà.
  • [^] # Re: Librairie toute faite ?

    Posté par  . En réponse au message Récupérer les enregistrements d'un fichier.... Évalué à 2.

    En effet, il en existe certainement.
    Le problème n'est pas pour ma machine, sur laquelle j'installe ce que je veux, mais les machines sur lesquelles je déploie mes softs : sur ces dernières, pas moyen d'installer quoi que ce soit.
    J'aurais pu faire tout simple :
    system ("pdfinfo fichier.pdf"); fait exactement ce que je veux, mais maintenant, tu sais pourquoi je veux recoder ça "from scratch"...
  • [^] # Re: Meta-données sur un fichier pdf.

    Posté par  . En réponse au message Meta-données sur un fichier pdf.. Évalué à 2.

    Merci pour ta réponse. J'avais dit que je cherchais de mon côté...
    En effet, le package hyperref est fait pour ça, j'avais également trouvé l'info.
    Pour faire apparaître les informations sous forme d'info-bulles, j'ai trouvé un site hier qui explique comment réaliser ça en css pur, c'est passablement excellent.
    Par contre, ce qui me fait hésiter pour l'instant, c'est l'utilisation de pdfinfo. En effet, je ne peux être certain que xpdf soit installé sur les machines que j'utilise, et pour certaines, je n'ai pas la possibilité d'installer quoi que ce soit.
    Je cherche donc toujours une solution php pure....
    En tout cas, merci pour ton aide.
  • # Oui, on sait comment changer cela :

    Posté par  . En réponse au message Postfix et php. Évalué à 5.

    http://www.php.net/manual/en/function.mail.php

    Il y est indiqué que le 4ème paramètre permet de spécifier des headers additionnels, comme par exemple le champ "From" du mail.
    CF. L'exemple 2.
    Bon courage pour la suite !
  • # Problème d'ordre des paramètres ?

    Posté par  . En réponse au message tar chroot et le reste. Évalué à 2.

    J'ai fait un essai, avec les commandes que tu donnes, ça fonctionne très bien :

    $ ls -lR
    .:
    total 8
    drwxr-xr-x 2 david users 4096 2006-03-01 13:41 dir1
    drwxr-xr-x 2 david users 4096 2006-03-01 13:41 dir2

    ./dir1:
    total 0
    -rw-r--r-- 1 david users 0 2006-03-01 13:41 fichier1
    -rw-r--r-- 1 david users 0 2006-03-01 13:41 fichier2
    -rw-r--r-- 1 david users 0 2006-03-01 13:41 fichier3

    ./dir2:
    total 0
    -rw-r--r-- 1 david users 0 2006-03-01 13:41 fichier1
    -rw-r--r-- 1 david users 0 2006-03-01 13:41 fichier2
    -rw-r--r-- 1 david users 0 2006-03-01 13:41 fichier3
    $ tar zcf archive.tgz .
    $ tar ztvf archive.tgz
    drwxr-xr-x david/users 0 2006-03-01 13:43:46 ./
    drwxr-xr-x david/users 0 2006-03-01 13:41:15 ./dir1/
    -rw-r--r-- david/users 0 2006-03-01 13:41:15 ./dir1/fichier1
    -rw-r--r-- david/users 0 2006-03-01 13:41:15 ./dir1/fichier2
    -rw-r--r-- david/users 0 2006-03-01 13:41:15 ./dir1/fichier3
    drwxr-xr-x david/users 0 2006-03-01 13:41:18 ./dir2/
    -rw-r--r-- david/users 0 2006-03-01 13:41:18 ./dir2/fichier1
    -rw-r--r-- david/users 0 2006-03-01 13:41:18 ./dir2/fichier2
    -rw-r--r-- david/users 0 2006-03-01 13:41:18 ./dir2/fichier3


    Le nom du fichier de l'archive doit être placé juste après le 'f' du tar zcf, et ensuite, on indique la liste des fichiers/répertoires qu'on veut mettre dans l'archive.
    J'espère que ça répond à ta question.
    Sinon, il reste toujours les pages de man, d'info. En particulier, dans konqueror, info:tar donne un ensemble de pages hautement intéressantes, exemples à l'appui.
  • # Hum... Comment dire ?

    Posté par  . En réponse au message administrer Windows depuis Linux. Évalué à 2.

    Un PC Windows, ça s'administre ? Première nouvelle !
    Bref, blague à part....
    J'ai pris google, j'ai tapé "ultravnc+tunnel", je suis tombé sur cette page :
    http://www.google.fr/search?q=ultravnc%2Btunnel&ie=UTF-8(...)
    Le second lien, donne accès à un tutoriel qui semble assez bien foutu. Je te laisse le découvrir, et comme je suis dans un bon jour, je te donne le lien direct vers le tutoriel :
    http://pigtail.net/LRP/vnc/

    Pour la partie linux, je me demande si on ne peut pas utiliser krdc, qui fait partie de la suite KDE.
    Tiens-nous au courant de la mise en place de ton tunnel, au cas où...
  • [^] # Re: locate

    Posté par  . En réponse au message find..... Évalué à 8.

    Bon, allé, parce que je suis content d'avoir "presque" trouvé, je te donne la solution complète....
    $PWD/*.{mp3,ogg} --count -i

    Sur ce... Bonne lecture des pages {info,man}...
  • # locate

    Posté par  . En réponse au message find..... Évalué à 8.

    locate peut répondre à ton besoin en une seule ligne de commande :
    locate $PWD/*.{mp3,ogg} --count
    Il faut qu'il soit installé et que la base soit à jour.
    Le mieux reste encore de coller un updatedb dans un cron.
    Voilà, en espérant que ça aide.
  • [^] # Re: variable d'environnement ou chemin d'accès incorrect

    Posté par  . En réponse au message crontab et cron. Évalué à 2.

    Bon, ok, sorti de son contexte, et surtout prise au pied de la lettre, ma phrase peut être mal interprétée.
    Tout ce que je voulais dire, c'est qu'installer cygwin uniquement pour copier un répertoire d'un point A à un point B à heure fixe, c'est un peu prendre un char pour écraser une puce.
    A aucun moment je n'ai voulu dire que c'était une mauvaise idée d'utiliser cygwin, je voulais juste préciser ce point.
    Après, si c'est juste "un exercice de style" pour apprendre le shell, et tout ce qui gravite autour de notre os favori, tant mieux !
    Après tout, y'en a bien qui ont codé un compilateur C en bash....
  • [^] # Re: variable d'environnement ou chemin d'accès incorrect

    Posté par  . En réponse au message crontab et cron. Évalué à 2.

    Bon, en fait, je crois bien que pour ce que tu veux faire, utiliser cygwin est une abbération (d'ailleurs, je crois bien avoir averti dans un précédent commentaire lors d'un précédent message, bref.).
    Alors, on reprend depuis le début :
    - si tu tiens vraiment à faire ça sous cygwin :
    Dans une console, tu tapes :
    $ chmod u+x script1.sh
    Évidement, tu te seras placé à l'endroit de l'arborescence où se situe le fichier nommé script1.sh.

    - Si tu veux abandonner cygwin au profit d'une solution plus simple
    Tu rédiges un script nommé sauve.bat (le bloc note est très bien pour ça) dans lequel tu mets :

    xcopy /e /s [chemin_source]\*.* [chemin_destination]

    En remplaçant [chemin_source] et [chemin_destination] par les valeurs renseignées dans la barre d'adresse de ton explorateur.
    Ensuite, tu utilises le planificateur de tâches de windows, pour lui dire que tel(s) jour(s) à telle(s) heure(s) il doit lancer le script nommé sauve.bat.
    Avec ça, ça doit marcher.
  • [^] # Re: /tmp/.ICE-unix

    Posté par  . En réponse au message Kde ne démarre plus. Évalué à 2.

    Bon, j'ai répondu un peu vite.
    J'ai retrouvé une antiquité sur laquelle un stagiaire avait installé une debian. Je pense avoir trouvé la source de ton problème. Si ce n'est pas ça, je compte sur les pros pour corriger mes propos.
    Dans /etc/init.d, il y a un fichier nommé xfree86-common qui contient ce code :
    SOCKET_DIR=/tmp/.X11-unix
    ICE_DIR=/tmp/.ICE-unix

    set_up_socket_dir () {
    echo -n "Setting up X server socket directory $SOCKET_DIR..."
    if [ -e $SOCKET_DIR -a ! -d $SOCKET_DIR ]; then
    mv $SOCKET_DIR $SOCKET_DIR.$$
    fi
    mkdir -p $SOCKET_DIR
    chown 0:0 $SOCKET_DIR
    chmod 1777 $SOCKET_DIR
    echo "done."
    }

    set_up_ice_dir () {
    echo -n "Setting up ICE socket directory $ICE_DIR..."
    if [ -e $ICE_DIR -a ! -d $ICE_DIR ]; then
    mv $ICE_DIR $ICE_DIR.$$
    fi
    mkdir -p $ICE_DIR
    chown 0:0 $ICE_DIR
    chmod 1777 $ICE_DIR
    echo "done."
    }

    Ces deux fonctions sont appelées ensuite dans le start, comme suit :
    case "$1" in
    start)
    set_up_socket_dir
    set_up_ice_dir
    ;;


    Je n'ai pas mis tout le contenu du fichier, mais ça permet de voir ou ça cliche....
  • [^] # Re: /tmp/.ICE-unix

    Posté par  . En réponse au message Kde ne démarre plus. Évalué à 2.

    Le contenu de /etc/rc.d/init.d/cleanfs peut aider. Ceci dit, je ne sais *vraiment* pas comment c'est gaulé sous debian... Il faudrait qu'un spécialiste soit là pour préciser un peu tout ça....
  • [^] # Re: /tmp/.ICE-unix

    Posté par  . En réponse au message Kde ne démarre plus. Évalué à 2.

    Tu te connectes en root sur ta machine, dans une console, puis tu tapes :
    $ install -o root -g root -m 1777 -d /tmp/.ICE-unix

    Après, regardes si tu as un fichier /etc/sysconfig/createfiles. Si c'est le cas, mais qu'il est vide, ajoute la ligne que je t'avais donné dans un post précédent.
  • [^] # Re: /tmp/.ICE-unix

    Posté par  . En réponse au message Kde ne démarre plus. Évalué à 2.

    Bon, je ne suis pas sous debian, alors ce qui suit sera à adapter...
    Dans /etc/sysconfig, j'ai un fichier nommé createfiles qui contient :
    /tmp/.ICE-unix dir 1777 root root
    Ce fichier est chargé par /etc/rc.d/init.d/cleanfs
    Ce dernier s'assure qu'au démarrage de la machine, le répertoire /tmp/.ICE-unix est bien créé avec les droits qui vont bien.
    A la limite, connecte-toi en root, lance X et va voir dans /tmp avec un ls -la.
    Si ce n'est pas mieux, essaye de le créer et lance kdm, et tente de te connecter.
    Sinon, tu peux essayer de te connecter en tant qu'utilisateur, tout en sachant que ça va se vautrer, et après la connexion, scrute le fichier /home/utilisateur/.xsession-errors
    C'est là-dedans que kde braille tout ce qu'il peut à chaque fois qu'il se passe quelque chose.
    Voilà, j'espère que ces quelques pistes te seront utiles.
  • [^] # Re: /tmp/.ICE-unix

    Posté par  . En réponse au message Kde ne démarre plus. Évalué à 2.

    Avec un ls -la ça devrait mieux fonctionner, non ?
  • # /tmp/.ICE-unix

    Posté par  . En réponse au message Kde ne démarre plus. Évalué à 2.

    Vérifie les droits donnés à ce dossier. Il doit être en
    drwxrwxrwt 2 root root 4096 2006-02-24 10:50 .ICE-unix
    J'avais eu ce problème, et en rétablissant les droits, c'était reparti comme en 42 !
    En espérant que ça aide.
  • [^] # Re: Suite

    Posté par  . En réponse au message Transfert de repertoire et fichier en NTFS. Évalué à 2.

    Bon, ce n'est pas windowsfr.org ici, mais on va quand même t'aider....

    xcopy /s /e z:\tmp\test\. c:\2\

    devrait régler ton problème.
  • [^] # Re: Cron

    Posté par  . En réponse au message Lancement d'une tache à heure fixe. Évalué à 2.

    Pas que je sache, mais il y a un outil : "planificateur de tâches" qui fait à peu près la même chose.
    Sinon, tu as toujours la solution (lourde) d'installer cygwin....
  • [^] # Re: Cron

    Posté par  . En réponse au message Lancement d'une tache à heure fixe. Évalué à 3.

    Bon, je n'y connais rien à la programmation en python, et j'espère ne pas me tromper dans ce qui va suivre.
    Ce que voulait dire le monsieur, c'est que tu rédiges ton script python, et tu utilises la commande cron pour le lancer à heure fixe.
    Ca fonctionne avec n'importe quel programme, ce n'est pas propre à python, c'est un outil supplémentaire fourni dans toute tistrib.
    Par exemple, j'ai fait un script qui me permet de faire mes sauvegardes, appelé "sauvetout". Peu importe le contenu de ce script, que ce soit du shell, du python, tu perl ou du php, ce qui compte, c'est qu'il soit exécutable.
    Dans ma crontab (obtenu en faisant un fcrontab -l), j'ai :
    55 23 * * 1,2,3,4,5 /usr/bin/sauvetout

    Ce qui signifie que tous les lundi, mardi, mercredi, jeudi, vendredi, à 23H55, la commande /usr/bin/sauvetout sera exécutée.
    Tu trouveras la signification des deux * dans le man cron ou man crontab.
    Souvent, c'est fcron qui est utilisé, il faut donc utiliser la commande fcrontab -e pour créer un fichier crontab valide, en respectant la syntaxe donnée dans les pages du manuel.
    Voilà, en espérant t'avoir aidé.
  • # Avec un utilisateur ayant les droits...

    Posté par  . En réponse au message Mauvais shell root dans passwd. Évalué à 1.

    Tu peux peut-être essayer de créer un lien symbolique de /sbin/sh vers /sbin/ksh....
    Evidement, si tu n'as pas les droits d'écriture sur ce répertoire, ce que je viens de taper est inutile....
  • [^] # Re: ou ?

    Posté par  . En réponse au message script Bash et Erreur volontaire. Évalué à 2.

    Alors ta question est mal posée....
    Si tu veux que toto soit lancée, même si make plante, ma réponse fonctionne.
    Si tu veux que toto ne soit lancée que si le make plante, alors tu peux procéder ainsi :

    make &> /dev/null
    if [ $? != 0 ] then
    toto
    fi

    En gros, ça lance le make en dirigeant la sortie et la sortie d'erreur standard vers /dev/null. Si le code de retour est différent de 0, on lance toto, sinon, on ne fait rien. Tu adapteras selon tes besoin. Voilà, j'espère que ce coup-ci ça répond à ton problème...