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#!/bin/bash
#mientras exista el archivo y no esté vacío
while [ -s ~/importante/ ]
do
#obtengo la fecha en el formato año mes día (todo junto)
fecha = date +"%Y%m%d"
#Nos posicionamos en el origen
cd ~/importante/
#obtengo el primer fichero
fichero=`ls | head -1`
#formo el nombre para el fichero comprimido (nombre_fecha)
nombre="$fichero""_""$fecha"".tgz"
#comprimo un archivo
tar -zcvf $nombre cd /media/backup
#borro el fichero después de comprimirlo
sudo rm -rf $fichero
#muevo el fichero comprimido a la carpeta destino
sudo mv prueba /media/backup
#nos posicionamos en el destino
cd /media/backup
#cuento el numero de archivos
numero=ls | wc -l
if [$numero -gt 5]; then
#obtenego el fichero más atiguo
fichero=`ls -rt | head -1`
#borro el fichero obtenido
sudo rm -rf $fichero
fi
echo 'Backup realizado correctamente'
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./backup.sh: línea 28: [: falta un `]'
Backup realizado correctamente
./backup.sh: línea 11: fecha: orden no encontrada
tar: cd: No se puede stat: No existe el archivo o el directorio
tar: Eliminando la `/' inicial de los nombres
/media/backup/
/media/backup/prueba/
tar: Saliendo con fallos debido a errores anteriores
mv: no se puede efectuar `stat' sobre «prueba»: No existe el archivo o el directorio
0
muchas gracias por vuestra ayuda
saludos