Automatisk kopiering av CD-media

Permalänk
Avstängd

Automatisk kopiering av CD-media

Jag har några hundra CD-skivor med urgamla data från decennier av datormeck. Nu är hårddiskarna så stora att detta utan vidare får plats på datorn.

Det är dock ett jäkla meck att manuellt kopiera skiva för skiva, så jag söker ett program som:

1) Låter en speca en målkatalog
2) Mata in en CD
3) Automatiskt kopierar CDn till målkatalogen
4) Matar ut CD-trayen
5) In med ny CD, stäng trayen, GOTO 3

Osv, osv. Någon som har ett program som fixar det? Eller ett skript?
Det där med "mata ut CD-trayen" är ganska viktigt då jag kopierar på flera datorer och det är en utmärkt signal för att jag ska veta att det är dags att mata in en ny CD.

Edit: Jag kör Ubuntu. Ett skript funkar fint. Bara det matar ut CDn och automatisk kopierar när CD-trayen stängs och inte kräver interaktion med tangentbord och mus. Det är bara data-CD, ingenting behöver rippas eller encodas.

Permalänk
Avstängd

Jag har försökt med detta:

#bash #while : #do mount /dev/scd0 /media/CD cd $1 echo Kopierar: ls /media/CD/* cp /media/CD/* $1 #umount /mnt/scd echo CHMOD chmod 744 * echo CHOWN chown mby * echo EJECT eject # echo Tryck på enter... # read x #done

Det funkar skit! CD-trayen åker in av sig själv, samma skiva kopieras om och om igen, det verkar som multipla instanser av kopieringen körs i bakgrunden, endast drygt 600 MB kopieras, oavsett om skivan är full eller inte. Idioti hela vägen. Finns det inget GUI-program? Det borde inte vara hjärnkirurgi...

Edit: Senaste versionen

Permalänk
Medlem

#bash FOLDER=path_till_mappen_dar_saker_ska_sparas while : do mount /dev/scd0 /media/CD echo Kopierar: cp -r /media/CD/* $FOLDER umount /media/CD echo EJECT eject /dev/scd0 sleep 120 done

Skrev om den en aning. Anpassade efter att du antagligen kommer vilja kopiera mappar också (-r), samt att du får köra chmod och chown efter att du är klar med allt, annars kommer du hålla på att byta rättigheter på allt flera gånger(vilket iofs inte tar så lång tid).

Orsaken till ditt problem med upprepad kopiering är att den påbörjar nästa cykel direkt efter att den innan är klar. Den lösningen jag använder ovan är _väldigt_ ful den också; gör att den väntar i två minuter (sleep 120) innan nästa cykel påbörjas. Dvs har du inte bytt skiva efter två minuter kopierar den samma igen.

Har dessvärre inte kunnat testa koden, återkom om den inte fungerar.

Permalänk
Avstängd

Hmm. Jag har ett "read"-kommando också:

echo Tryck på enter... read x

Jag kopierade från en gammal instans. Tyvärr hjälper det inte, det är inte därför det startar om. Jag har faktiskt tagit bort loopen helt och "går med på" att köra kommandot om och om igen (det går ju rätt snabbt, uppil-enter), men beteendet är det samma.

Bara 600 MB kopieras och det hela ballar ur när jag byter skiva.

Edit: Det stora problemet är som sagt att eject drar in CD-trayen innan man hinner byta. Det händer inte när man kör direkt från CLI, men i ett skript så skiter det sig. Jag har som sagt tagit bort loopen (och read-kommandot då också, eftersom det inte behövs).

Edit: Kan det ha att göra med ubuntus automatiska mount?

Permalänk
Medlem
Skrivet av MBY:

Hmm. Jag har ett "read"-kommando också:

echo Tryck på enter... read x

Jag kopierade från en gammal instans. Tyvärr hjälper det inte, det är inte därför det startar om. Jag har faktiskt tagit bort loopen helt och "går med på" att köra kommandot om och om igen (det går ju rätt snabbt, uppil-enter), men beteendet är det samma.

Bara 600 MB kopieras och det hela ballar ur när jag byter skiva.

Edit: Det stora problemet är som sagt att eject drar in CD-trayen innan man hinner byta. Det händer inte när man kör direkt från CLI, men i ett skript så skiter det sig. Jag har som sagt tagit bort loopen (och read-kommandot då också, eftersom det inte behövs).

Edit: Kan det ha att göra med ubuntus automatiska mount?

Det tror jag inte. Jag använder Kubuntu själv, och mitt test alldeles nyss med ytterligare en svag modifikation av skriptet fungerade utmärkt.

Nuvarande versionen av mitt skript (med paths anpassade efter min dator):

#!/bin/bash FOLDER=~/backup while : do mount /dev/cdrom /media/cdrom echo Kopierar: cp -r /media/cdrom/* $FOLDER umount /media/cdrom echo EJECT eject /dev/cdrom echo "Press button to continue..." read x done

EDIT: kan nog förklara att du inte får över all data med att du använder cp och inte cp -r (det senare kopierar även mappar).

Permalänk
Avstängd

Ja, cp -r var ju bra att lägga till! Det hade jag missat.

Men, vad som händer nu är att den spottar ut CDn, hänger sig vid mount, drar upp system-load och hänger datorn efter några inmatningar...

Efter lite meck så händer detta: Den drar in CD-trayen (och fy fan vad jag har hatat den motoriserade släden sedan dag 1. Varför inte göra som med floppys?), sedan händer ingenting. Den söker lite på disken. Men inget mer. Helt stumt. Förutom att den öppnar och stänger CDn med ojämna intervall.

Edit: Och precis som förr verkar saker instansieras. Även om jag avbrutit skriptet och stängt ner terminalen har CD-spelaren ballat ur totalt. Kräver omstart. Det bästa av allt är att jag får ett GUI-felmeddelande om att CDn måste mountas read-only (nähä? )!

Jag ger upp och återgår till manuell kopiering. Då får man lite koll, ser progress och det funkar ju fint, men är retarderat manuellt.

Summa summarum: mount och/eller eject "brickar" CD-spelaren tills omstart. GUI-kopiering fungerar dock hur fint som helst. Jag prövade att ändra tillbaka mount /dev/cdrom till /dev/scd0, men det är ingen skillnad.

Edit2: Ska testa på en annan dator. Egentligen är det ju skit samma med datorn jag sitter vid, de är de andra som jag vill signalerar...