Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: jmrmcf en 7 Junio 2015, 23:55 pm



Título: Ayuda. Script Backup
Publicado por: jmrmcf en 7 Junio 2015, 23:55 pm
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
  1. #! /bin/bash
  2. function donde()
  3. {
  4.        local ubic
  5.        echo "1. disco"
  6.        echo "2. memoria"
  7.        read -p "donde desea guardar el backup " ubic
  8.        case  $ubic in
  9.                [1-2])
  10.                        return $ubic;;
  11.                *)
  12.                        echo "valor no valido"
  13.                        donde
  14.        esac                
  15. }
  16. function que()
  17. {
  18.        local tipo
  19.        echo "1. .doc"
  20.        echo "2. .txt"
  21.        echo "3. .pdf"
  22.        echo "4. .c"
  23.        echo "5. .sh"
  24.        read -p "a que tipo de archivo " tipo
  25.        case  $tipo in
  26.                [1-5])
  27.                        return $tipo;;
  28.                *)
  29.                        echo "valor no valido"
  30.                        que
  31.        esac        
  32. }
  33. donde
  34. ubic=$?
  35. case $ubic in
  36.        1)
  37. ubi='-d /home/sdii/Documentos/backup'
  38.               ubic="mkdir /home/sdii/Documentos/backup"
  39. ubicc='/home/sdii/Documentos/backup/ \;';;
  40.        *)
  41. ubi='-d /media/sdii/F26258CF62589A65/backup'
  42.                ubic='mkdir /media/sdii/F26258CF62589A65/backup'
  43. ubicc="/media/sdii/F26258CF62589A65/backup/ \;"        
  44. esac  
  45. que
  46. tipo=$?
  47. case $tipo in
  48.        1)
  49.                tipo='sudo find /home -iname "*.docx" -exec cp {} '
  50. tipoo=$tipo$ubicc;;
  51.        2)
  52.                tipo='sudo find /home -iname "*.txt" -exec cp {} '
  53. tipoo=$tipo$ubicc;;  
  54.        3)
  55.                tipo='sudo find /home -iname "*.pdf" -exec cp {} '
  56. tipoo=$tipo$ubicc;;
  57.        4)
  58.                tipo='sudo find /home -iname "*.c" -exec cp {} '
  59. tipoo=$tipo$ubicc;;
  60.        *)    
  61.                tipo='sudo find /home -iname "*.sh" -exec cp {} '
  62. tipoo=$tipo$ubicc
  63. esac
  64.  
  65.  
  66. if [ $ubi ]
  67. then
  68. $tipoo
  69. else
  70. $ubic
  71. $tipoo
  72. fi
  73.  
  74.  
  75.  

Esto pasa cuando pongo que se ejecute la variable tipoo
(http://i58.tinypic.com/10qgmu1.png)
Poniendo echo y ejecutando:
(http://i59.tinypic.com/vxg7dh.jpg)


Título: Re: Ayuda. Script Backup
Publicado por: moikano→@ en 8 Junio 2015, 10:52 am
Buenas.

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

Tal que así

Código:
cp fichero.origen  fichero.destino 

Suerte.