Forum Programmation.shell Tester si un cd est dans un lecteur

Posté par  .
Étiquettes : aucune
0
18
juil.
2006
Bonjour à tous,

Je cherche à tester si un cd est bien dans un lecteur identifié par son device de type /dev/cdrom.
Je suis en traint de chercher du coté de la commande `dd` mais en vain pour l'instant.
Donc si quelqu'un a une idée je suis preneur :)
Merci a tous.
  • # mount ou dd, au choix

    Posté par  . Évalué à 2.

    Est-ce que la commande mount ne te suffirait pas?

    mount | grep /dev/cdrom
    if [ $? -eq 0 ] ; then
    echo Il est monté
    else
    echo Il est pas monté
    fi


    Sinon avec dd tu peux essayer de voir comme ca:

    dd if=/dev/cdrom of=/tmp/toto count=1 bs=1024 2>/dev/null
    if [ $? -eq 0 ] ; then
    echo Il est present
    else
    echo y a rien
    fi
    • [^] # Re: mount ou dd, au choix

      Posté par  . Évalué à 1.

      Tout d'abord merci d'avoir répondu si vite.

      Pour le mount : non je peux pas.
      Pour dd, justement je suis en traint de tester :

      dd if=/dev/sr0 of=test count=32l

      et voila le resultat :

      dd: lecture de `/dev/sr0': Erreur d'entrée/sortie
      0+0 enregistrements lus
      0+0 enregistrements écrits
      1 octet (1B) copié, 0,004085 seconde, 0,0 kB/s

      Pourtant :

      brw-rw---- 1 root cdrom 11, 0 jui 18 14:43 /dev/sr0

      j'ai essayer ta commande aussi mais c'est le meme resultat.
      Peut etre parce que le CD est un CD audio .?
      Je vais faire d'autre test pour voir.
  • # blockdev

    Posté par  . Évalué à 5.

    # blockdev --getsz /dev/cdrom
    /dev/cdrom: Aucun medium trouvé
    • [^] # Re: blockdev

      Posté par  . Évalué à 1.

      Merci pour cette commande qui est trés pratique et que je ne connaissais pas.
      Je vais peut etre etre un peu chiant mais le script ne vas pas s'executer en tant que que root mais en tant qu'utilisateur simple.
      Donc il faut que je trouve une alternative.
      Et pour dd ca ne marche pas avec les CD audio.
      Merci
      • [^] # Re: blockdev

        Posté par  . Évalué à 2.

        "utilisateur simple [...] une alternative"
        autoriser blockdev pour /dev/cdrom pour les users en question via sudo ?
        • [^] # Re: blockdev

          Posté par  . Évalué à 1.

          wai ca serait la methode la plus simple mais mon script va etre executer par des utilisateurs que je ne connais pas sur leur machine. C'est un mini logiciel si tu prefers.
          Voila mon probleme :)
  • # head sai bien

    Posté par  (site web personnel, Mastodon) . Évalué à 0.

    simple et efficace !
    [kolter@nomachine][11:43]
    [/tmp]
    >cat plop.sh
    #!/bin/sh
    
    DEVICE=/dev/cdrom
    
    [ -n "$1" ] && DEVICE="$1"
    
    head -c 1 "$DEVICE" 1>/dev/null 2>&1
    
    if [ $? = 0 ]; then
        echo "un média est présent dans le lecteur ($DEVICE)"
    else
        echo "il n'y a pas de média présent dans le lecteur ($DEVICE)"
    fi
    [kolter@nomachine][11:43]
    [/tmp]
    >./plop.sh
    un média est présent dans le lecteur (/dev/cdrom)
    [kolter@nomachine][11:43]
    [/tmp]
    >./plop.sh /dev/hdd
    il n'y a pas de média présent dans le lecteur (/dev/hdd)
    [kolter@nomachine][11:43]
    [/tmp]
    >
    
    M.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.