Compresion automatica de archivos
#4
(08-04-2020, 05:38 PM)damian.salum@gmail.com escribió: Perfecto Ganekogorta! es lo que necesito! que compirma los archivos luego del backup, que borre los antiguos y que los envie a un Nas remoto.

Tienes la linea para compartir?

Gracias!
Hola Damián

Te paso unas líneas de código de un script para que te bases en ello. 
No está depurado del todo ya que se debería usar mas variables al inicio para evitar usar rutas en las lineas posteriores.
Y los usuarios que sepan de bash, que me perdonen, pero soy novato en ello.

Hay comentarios que espero que te sirvan para que te hagas uno nuevo.

Algunos de estos comentarios, si los descomentas te muestran información.


Código:
#! /bin/bash
inicio=$(date)
ruta="/share/CACHEDEV1_DATA/Public/BBDD"
lruta=${#ruta}
ruta1="/share/CACHEDEV1_DATA/Public/BBDD1"
#las copias sin comprimir tienen extension .bak y se encuentran en la siguiente ruta
rutaBBDD="/share/CACHEDEV1_DATA/MSSQL/Backup_GG"
#en esta ruta anterior quedan los "copias" últimos archivo comprimidos y se eliminan los archivos bak


# Obtener los archivos de la última copia y saco fecha de ultimo comprimido
ls -d -1 $ruta/*/> $ruta1/listadirectorios.txt
nocomprimidos=$(wc -l $ruta1"/listadirectorios.txt" | awk '{print $1}')
ciclos=$((nocomprimidos))
inicial=1
fechamax="20000101"

for (( c=$inicial; c<=$ciclos; c++ ))
do
    read line
    #calculo la longitud total de la ruta con nombre y extension
    largocompleto=${#line}
    fechafic=${line:$((largonombre-16)):8}
    if [ $fechafic -gt $fechamax ] ; then
        fechamax=$fechafic
    fi
done< $ruta1/listaSQLzip2.txt



#echo "fecha maxima $fechamax"
#ahora lo convierto en fecha y le resto los dias a mantener (copias)
copias=6
anyofic=${fechamax:0:4}
mesfic=${fechamax:4:2}
diafic=${fechamax:6:2}
anyo=$(date +%Y)
mes=$(date +%m)
dia=$(date +%d)
#echo "diamax $diafic, mesmax $mesfic y añomax $anyofic"
#echo "actual dia $dia, mes $mes y año $anyo"
fecha1=$(date -d "$fecha1" +$((anyofic))$((mesfic))$((diafic)))
fecha1=$((fecha1-copias))

#ahora borro los comprimidos mas viejos para tener la n copias ultimas
for (( c=$inicial; c<=$ciclos; c++ ))
do
    read line
    largocompleto=${#line}
    fechafic=${line:$((largonombre-16)):8}
    #echo "fechafic=$fechafic y fecha1=$fecha1 "
    if [ $fecha1 -gt $fechafic ] ; then
        rm -f $line
        #echo "borrado fechafic=$fechafic y fecha1=$fecha1 "
    fi
done< $ruta1/listaSQLzip2.txt


#inicio la compresion de los archivos BAK


echo "hora inicio BBDD "$inicio
ls -At -1 $ruta/*.BAK> $ruta1/listaSQLzip.txt
nocomprimidos=$(wc -l "/share/CACHEDEV1_DATA/MSSQL/listaSQLzip.txt" | awk '{print $1}')
ciclos=$((nocomprimidos))
#echo " inicio buble de $nocomprimidos ciclos"
inicio=1
i=1
for (( c=$inicio; c<=$ciclos; c++ ))
do
   read line
        #calculo la longitud total de la ruta con nombre y extension
        largocompleto=${#line}
        #calculo la longitud total del nombre archivo con extension
        largonombre=$((largocompleto-lruta))
           #calculo la longitud del path al archivo
        base=$((largocompleto-largonombre))
        #calculo la longitud del nombre del archivo sin fecha, ni extension
        nombrecorto=${line:$((base)):$((base-16))}
        largonombrecorto=${#nombrecorto}
        largonombrecorto=$((largonombrecorto))
        #echo "ciclo=$i linea $largocompleto, nombre $largonombre, abreviado $largonombrecorto y base $base"
        ((i = i + 1))
        #echo "Proceso /share/CACHEDEV1_DATA/MSSQL/Backup_GG${line:$((base)):$((largonombre-4))}"
        zip $rutaBBDD${line:$((base)):$((largonombre-4))} $line
            #echo compruebo si existe el comprimido zip y borro el original
        if [ -f $rutaBBDD${line:$((base)):$((largonombre-4))}.zip ] ; then
             #echo "borro el archivo $rutaBBDD${line:$((base)):$((largonombre-4))}.BAK"
             rm -f $rutaBBDD${line:$((base)):$((largonombre-4))}.BAK
        fi
done < $ruta1/listaSQLzip.txt
Un saludo

Agur eta ondo ibili

Ganekogorta (TS-469Pro, TVS-673e, QBoat Sunny, TS-453Be, TR-002 y QHora-301w) Ʀɐɯ0η
  Responder


Mensajes en este tema
Compresion automatica de archivos - por Ganekogorta - 28-02-2020, 11:08 PM
RE: Compresion automatica de archivos - por Ganekogorta - 09-04-2020, 09:29 AM



Usuarios navegando en este tema: 1 invitado(s)