Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: cristiansbd95 en 30 Abril 2019, 21:01 pm



Título: Ayuda script en bash
Publicado por: cristiansbd95 en 30 Abril 2019, 21:01 pm
 Hola compañeros,
Soy novato en esto del bash y estoy intentando realizar un script que haga una copia de seguridad de un directorio con el comando tar pasado por parametro. El ejercicio consiste en que le pasamos dos parametros uno indicando el directorio a a realizar la copia y el segundo el numero de copias a guardar. Consigo que me haga una copia en tar del directorio pero sin datos ya que me crea una carpeta /dev/null entiendo que es porque no me encuentra la carpeta que le paso por parametro pero mi duda es como hago para que busque el directorio en todo el disco?

Os adjunto una captura del contenido del fichero tar

https://ibb.co/vBVJT4X

Gracias de antemano!

Código
  1. #!/bin/bash
  2.  
  3.  
  4. # Variables globales
  5.  
  6. SORTIDA=0
  7. a=0
  8. b=15
  9. directori=/copies
  10.  
  11.  
  12. userRoot(){
  13. [ "$UID" = "0" ] && return 0 || return 1
  14. }
  15.  
  16. parametres(){
  17. [ $1 -eq 2 ] && return 0 || return 1
  18. }
  19.  
  20. existeixDIRECTORI(){
  21. [ -d $1 ] && return 0 || return 1
  22.  
  23. }
  24.  
  25. rangDIES(){
  26.  
  27. if  [ $2 -gt $a ] && [ $2 -le $b ]; then
  28. return 0
  29. else
  30. echo "El valor introducido no es correcto, tiene que ser un numero entre 1 i 15."
  31. return 1
  32. fi
  33.  
  34. }
  35.  
  36. if userRoot; then
  37. if parametres $#; then
  38. echo "segundo if"
  39. if existeixDIRECTORI $1; then
  40. echo "tercer if"
  41.  
  42. if rangDIES  $1 $2; then
  43. echo "valor 1: $1 y valor 2: $2"
  44. start_time=$(date +%s)
  45. tar -zcf $directori/$1.tgz /dev/null
  46. finish_time=$(date +%s)
  47. else
  48. echo "El numero de dias $2 no es valido. "
  49. SORTIDA=1
  50.     fi
  51.     else
  52.  
  53.   echo "$1 no és un directorio."
  54. SORTIDA=1
  55.    fi
  56.  
  57.  
  58. else
  59. echo "Nombre de parametros incorrectos"
  60. SORTIDA=1
  61. fi
  62. else
  63. echo "Tienes que ser root para ejecutar este script."
  64. SORTIDA=1
  65. fi
  66. exit $SORTIDA
  67.  
  68.