[BASH] automatisation de copie de CD

automatisation de copie de CD [BASH] - Shell/Batch - Programmation

Marsh Posté le 09-02-2010 à 15:18:07    

Bonjour,
 
j'ai une bibliothèque de cds de données (environ 500) que je voudrais passer sur mon serveur NAS (il tourne sous ubuntu server, sans client X).
J'ai un bon niveau en programmation (procédural, objet, etc), mais niveau faible en admin système.
 
il va falloir que je rentre les cds un à un, mais pour aller plus vite, je voudrais automatiser la copie des fichiers.
 
pour cela j'ai commencé un script en bash, mais j'avance assez lentement, et je voudrais savoir si quelqu'un peut m'aider/me conseiller sur les commandes à utiliser.
 
L'idée générale du script est la suivante :  
 
si il y a un cd dans un lecteur, copier les données du fichier vers /data/bigone/
une fois la copie terminée, ejecter le cd.
 
et ainsi de suite.
 

Code :
  1. #!/bin/bash
  2. CDSTATE=`hal-get-property --udi /org/freedesktop/Hal/devices/storage_model_CD_ROM_SC_152L  --key storage.removable.media_available`
  3. DVDSTATE=`hal-get-property --udi /org/freedesktop/Hal/devices/storage_model_DVD_ROM_E616 --key storage.removable.media_available`
  4. if [ CDSTATE="true" ]
  5.     then
  6.         echo "cd absent"
  7.         # boucler jusqu'a ce que le cd soit présent...
  8.     else
  9.         echo "dvd in drive"
  10.         if #le cd n'as pas encore été copié...
  11.         then
  12.              cp -r /point/de/montage/du/cd   /data/bigone
  13.         fi
  14.         # ejecter le cd en fin de copie...
  15. fi
  16. if [ DVDSTATE="true" ]
  17.        # idem que pour le cd
  18. fi


 
J'utilise HAL qui me renvoie un true/false si il y a un cd dans le lecteur, et j'implémenterai une boucle infinie ensuite
 
mes questions sont les suivantes :
 
- comment puis savoir si le cd sera monté automatiquement?
- comment détecter que la copie est terminée?
- comment éjecter le cd?
- comment savoir si une copie est en cours?
- quelle est la meilleure boucle à faire?

 
je continue mes recherches de mon coté évidemment, et je surveille en meme temps les réponse de ce post ;)
 
merci d'avance de votre aide.

Reply

Marsh Posté le 09-02-2010 à 15:18:07   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed