Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/03/2015, 06:17
lexell
 
Fecha de Ingreso: abril-2007
Mensajes: 32
Antigüedad: 17 años
Puntos: 0
Pregunta Practica backup

Buenas, en la universidad acabo de empezar con administración de linux y la verdad es que estoy un poco perdido, a ver si me podeis echar una mano. El ejercicio dice esto:

Se pide realizar un programa que realice una copia de los directorios que cuelguen de ~/importante/ en media/backup , siguiendo las siguientes directivas:
* Cada directorio que cuelga de ~/importante/ deberá de guardarse en un fchero .tgz.
* Cada fchero de backup deberá de tener el nombre el nombre del directorio seguido de la fecha.
La fecha estará en formato año , mes , dia . Por ejemplo, para copiar el directorio docencia deberá
de tener el nombre docencia_20140404.tgz .

Este es mi código
Código BASH:
Ver original
  1. #!/bin/bash
  2.  
  3. #mientras exista el archivo y no esté vacío
  4. while [ -s ~/importante/ ]
  5. do
  6.   #obtengo la fecha en el formato año mes día (todo junto)
  7.   fecha = date +"%Y%m%d"
  8.   #Nos posicionamos en el origen
  9.   cd ~/importante/
  10.   #obtengo el primer fichero
  11.   fichero=`ls | head -1`
  12.   #formo el nombre para el fichero comprimido (nombre_fecha)
  13.   nombre="$fichero""_""$fecha"".tgz"
  14.   #comprimo un archivo
  15.   tar -zcvf $nombre cd /media/backup
  16.   #borro el fichero después de comprimirlo
  17.   sudo rm -rf $fichero
  18.   #muevo el fichero comprimido a la carpeta destino
  19.   sudo mv prueba /media/backup
  20.   #nos posicionamos en el destino
  21.   cd /media/backup
  22.   #cuento el numero de archivos
  23.   numero=ls | wc -l
  24.   if [$numero -gt 5]; then
  25.     #obtenego el fichero más atiguo
  26.     fichero=`ls -rt | head -1`
  27.     #borro el fichero obtenido
  28.     sudo rm -rf $fichero
  29.   fi
  30.   echo 'Backup realizado correctamente'
  31. done

como errores que me da:
- Crea el fichero comprimido en la carpeta "importante" pero de nombre le pone ".tgz .tgz .tgz ....." muchas veces
-Dentro del fichero comprimido me aparece /media/backup en lugar de los diversos directorios que hay en la carpeta "importante"
- Me da un bucle infinito, pero eso es normal ya que al ponerle el nombre ese tan raro al fichero comprimido, no se copia a /media/backup por lo que "importante" no se queda vacía nunca y no sale del bucle

Esto es lo que me devuelve la consola
Código Consola:
Ver original
  1. ./backup.sh: línea 28: [: falta un `]'
  2. Backup realizado correctamente
  3. ./backup.sh: línea 11: fecha: orden no encontrada
  4. tar: cd: No se puede stat: No existe el archivo o el directorio
  5. tar: Eliminando la `/' inicial de los nombres
  6. /media/backup/
  7. /media/backup/prueba/
  8. tar: Saliendo con fallos debido a errores anteriores
  9. mv: no se puede efectuar `stat' sobre «prueba»: No existe el archivo o el directorio
  10. 0

muchas gracias por vuestra ayuda

saludos