Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/03/2015, 07:54
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Practica backup

Primero que nada, tenés que eliminar los errores de sintaxis. Rápidamente se ven líneas con errores:

Código BASH:
Ver original
  1. #mientras exista el archivo y no esté vacío
  2. while [ -s ~/importante/ ] # ERROR: -s es para probar que un archivo tenga un tamaño mayor que cero, no para directorios
  3. do
  4.   #obtengo la fecha en el formato año mes día (todo junto)
  5.   fecha = date +"%Y%m%d" # ERROR, te faltan las comillas invertidas, o $()
  6.   #Nos posicionamos en el origen
  7.   cd ~/importante/
  8.   #obtengo el primer fichero
  9.   fichero=`ls | head -1`
  10.   #formo el nombre para el fichero comprimido (nombre_fecha)
  11.   nombre="$fichero""_""$fecha"".tgz"
  12.   #comprimo un archivo
  13.   tar -zcvf $nombre cd /media/backup #ERROR: dos comandos en la misma línea?
  14.   #borro el fichero después de comprimirlo
  15.   sudo rm -rf $fichero # ¿lo borras sin comprobar que tar haya creado el backup?
  16.   #muevo el fichero comprimido a la carpeta destino
  17.   sudo mv prueba /media/backup # ¿qué es "prueba"?
  18.   #nos posicionamos en el destino
  19.   cd /media/backup
  20.   #cuento el numero de archivos
  21.   numero=ls | wc -l # ERROR: de nuevo te faltan las comillas o $()
  22.   if [$numero -gt 5]; then # ERROR: siempre debe haber al menos un espacio después de [ y antes de ]
  23.     #obtenego el fichero más atiguo
  24.     fichero=`ls -rt | head -1`
  25.     #borro el fichero obtenido
  26.     sudo rm -rf $fichero
  27.   fi
  28.   echo 'Backup realizado correctamente'
  29. done

El motivo por el cual te da resultados extraños es que tenés un montón de errores básicos. Si te ponés a pensar en lo que realmente estás haciendo, todos los efectos que mencionás son producto de esos errores.