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.