Ayuda. Script Backup

Iniciado por jmrmcf, 7 Junio 2015, 23:55 PM

0 Miembros y 1 Visitante están viendo este tema.

jmrmcf

Hola a todos, estoy haciendo un script para hacer backup de archivos con una extensión especifica. Se debe escoger un medio para crear la carpeta del backup. Estoy usando find y exec, sin embargo cuando ejecuto me aparece el find: falta un parámetro para «-exec», si pongo un echo para la variable que ejecutaría la opción y copio el comando se ejecuta sin problema. Ayuda para que se ejecute solo por favor

Código (bash) [Seleccionar]

#! /bin/bash
function donde()
{
        local ubic
        echo "1. disco"
        echo "2. memoria"
        read -p "donde desea guardar el backup " ubic
        case  $ubic in
                [1-2])
                        return $ubic;;
                *)
                        echo "valor no valido"
                        donde
        esac                 
}
function que()
{
        local tipo
        echo "1. .doc"
        echo "2. .txt"
        echo "3. .pdf"
        echo "4. .c"
        echo "5. .sh"
        read -p "a que tipo de archivo " tipo
        case  $tipo in
                [1-5])
                        return $tipo;;
                *)
                        echo "valor no valido"
                        que
        esac         
}
donde
ubic=$?
case $ubic in
        1)
ubi='-d /home/sdii/Documentos/backup'
               ubic="mkdir /home/sdii/Documentos/backup"
ubicc='/home/sdii/Documentos/backup/ \;';;
        *)
ubi='-d /media/sdii/F26258CF62589A65/backup'
                ubic='mkdir /media/sdii/F26258CF62589A65/backup'
ubicc="/media/sdii/F26258CF62589A65/backup/ \;"         
esac   
que
tipo=$?
case $tipo in
        1)
                tipo='sudo find /home -iname "*.docx" -exec cp {} '
tipoo=$tipo$ubicc;;
        2)
                tipo='sudo find /home -iname "*.txt" -exec cp {} '
tipoo=$tipo$ubicc;;   
        3)
                tipo='sudo find /home -iname "*.pdf" -exec cp {} '
tipoo=$tipo$ubicc;;
        4)
                tipo='sudo find /home -iname "*.c" -exec cp {} '
tipoo=$tipo$ubicc;;
        *)     
                tipo='sudo find /home -iname "*.sh" -exec cp {} '
tipoo=$tipo$ubicc
esac


if [ $ubi ]
then
$tipoo
else
$ubic
$tipoo
fi




Esto pasa cuando pongo que se ejecute la variable tipoo

Poniendo echo y ejecutando:


moikano→@

Buenas.

Creo que es porque el comando cp necesita 2 parámetros. El fichero de origeny  el de destino.

Tal que así

cp fichero.origen  fichero.destino

Suerte.