Como faço para copiar automaticamente o conteúdo do CD na inserção?

2

Estou procurando copiar automaticamente o conteúdo de um disco na inserção para um diretório especificado. Não é um DVD ou cd simplesmente um arquivo de dados em cada disco, seria possível fazer isso com um script de shell?

    
por sark 08.10.2012 / 07:00

4 respostas

3

Sim, com certeza! Eu me interessei por isso fiz um pouco de cabeça arranhando e uma boa quantidade de dentes nashing e cabelo puxando. Aqui está:

#! /bin/bash
# Wait for a CD to be inserted then copy the contents
#
echo "CD copy, press <ctrl>C to exit"
echo "Looking for disk..."
#
# Go into a continuous loop always looking for a new CD
while :
    do
####### Get the mount point of /dev/sr0 out of the mounts file        
        TEST=$(grep /dev/sr0 /proc/self/mounts)
####### If it doesn't exist, loop until it does with 1 second pause
        if [ "$TEST" == "" ]; then
                echo -ne "."
                sleep 1
        else
                echo
############### Got it!  Need to strip the mount point out of the string
                TEST2=${TEST:9}
                set $TEST2
                TEST=
############### Do the copy process for the disk we found
                echo "Copying from $TEST"
                cp -vr $TEST/* ~/junk/
############### Eject the CD with suitable pauses to avoid any buffer problems
                sleep 1
                eject cdrom
                sleep 2
        fi
######## Still looping! Go back and wait for another CD!
    done
exit()

Você notará que o script assume que o cdrom é / dev / sr0, portanto, se esse não for o caso, você precisará alterá-lo. Use o comando blkid para descobrir a que seu dispositivo ótico é chamado. O script copia tudo para sua pasta pessoal em um subdiretório chamado lixo, e este diretório deve existir antes de você executar o script.

Eu encontrei o script ejeta o cd / dvd bem quando os dados são copiados. Se ele não ejetar e permanecer montado, eu acho que ele tentará copiar o mesmo disco novamente. Além disso, é bastante auto-explicativo. Aproveite : -)

    
por fabricator4 08.10.2012 / 10:52
0

Se você quiser fazer uma reação ao inserir um dvd / cd, precisará escrever uma regra do udev.

Você pode encontrar instruções aqui

Procure na seção sobre programas em execução em eventos específicos.

Usando as regras udev em /etc/udev/rules.d .

Primeiro, identifique o dispositivo fazendo um tail -f /var/log/dmesg . plugin, em seguida, remover para identificar o seu dispositivo.

Em seguida, use udevinfo no dispositivo para encontrar as informações detalhadas sobre (você usará por escrito sua regra)

Adicione um novo arquivo de regra /etc/udev/rules.d/90_CD_DVD.rules Usando as informações de udevinfo para filtrar apenas no seu dispositivo.No campo action de sua nova regra, escreva o comando cp /path-to-your-cd-dvd /path-to-save-your-files

    
por user61928 08.10.2012 / 08:52
0

Ambas as respostas principais funcionaram perfeitamente.

Fabricator4 : alterei a linha eject cdrom para eject /dev/sr0/ , já que estava dando erro para mim. Provavelmente porque eu decidi executar isso de um live usb no meu computador de backup, em vez da minha instalação normal.

    
por sarkstir 09.10.2012 / 19:16
-1

cp sourcefile destination_file

cp /Documnets/letter.txt /Imagens/letter.txt

    
por Naveen 08.10.2012 / 07:09