CD tower auto copy

Heute habe ich mal meinen alten SCSI CD Tower aus der Ecke gekramt, um mein CD Sammlung auf Platte zu ziehen. Nach einer reihe Kernel Module bauen wurden mir die Laufwerke /dev/sr0 - 6 zu Verfügung gestellt. Dafür habe dann ein Bash Script geschrieben womit ich die Daten von den CDs kopieren kann und nach dem kopieren die CDs ausgeworfen werden damit weitere eingelegt werden können.

#/bin/bash 
space=/root/video

function copy () {
  m=$1
  save="$space/`ls -al $space | wc -l`"
  mkdir $save
  
  touch $m
  mount /dev/$m /mnt/$m || echo "mount error $m"
  rsync -avP /mnt/$m/ $save/ > $m
  umount /mnt/$m
  eject /dev/$m
  
  rm $m
}

while true; do
  for i in {0..6}; do
    if [ ! -f "sr$i" ]; then
      if dd if=/dev/sr$i bs=1 skip=32808 count=12 2>/dev/null ; then
        echo "sr$i"
        copy "sr$i" &
      else
        echo "no cd in sr$i"
      fi
      sleep 2
    else 
      echo -n "."
    fi
  done
  sleep 15
done

exit 0

Mit der etwas unüblichen abfrage dd if=/dev/sr$i bs=1 skip=32808 count=12 2>/dev/null ermittle ich ob eine CD eingelegt ist und bekomme in einem den CD Titel angezeigt. In der Funktion copy erstelle ich zuerst den Verzeichnis wohin die Dateien kopiert werden sollen. Mounte das CD Laufwerk und kopiere die Dateien dann mittels rsync. Zumschluss werden die CDs durch den Befehl eject /dev/srX wieder ausgeworfen.