[BASH] Script Desencriptación

Iniciado por Gotttlieb, 9 Marzo 2013, 22:16 PM

0 Miembros y 1 Visitante están viendo este tema.

Gotttlieb

Hola Foro, mirad tengo un problemilla con este script, creo que llevo tanto rato con él que ya no puedo pensar. He estado mirando ejemplos para recorrer los ficheros de un directorio, pero no he sido capaz de hacer que funcionen.
Posiblemente, ( como en todos mis posts de este estilo) sea una tontería de novato, pero os agradecería muchísimo vuestra ayuda.

Código (bash) [Seleccionar]

#!/bin/bash

#set -vx

FILES="/root/backup/"
DESTINATION="/root/backup/"


for f in *.enc
do
 echo "descifrando $f ..."
 #Por cada fichero $f (nombre del fichero), lo descifra y le pone la extension correcta .tgz
 openssl enc -aes-256-cbc -d -in $FILES$f -out $DESTINATION$f.tgz -pass pass:PASSWORD
 echo "Eliminando fichero cifrado $f"
 #rm "$f"
 sleep 1
done


root@xxxxxx ~/scripts # ./descifrar.sh
descifrando *.enc ...
unknown option '/root/backup/xxxxxxx.enc'

Parece ser que no acepta el archivo porque no lo encuentra o porque se pone en el script el directorio de forma que lo detecta como una variable.

Muchas gracias por vuestra ayuda.

EDIT:

Bueno, al final me he dado cuenta de unas cuantas cosas ( espero que le sean de ayuda a alguien algún día.

#!/bin/bash

#set -vx

FILES="/root/backup/"
DESTINATION="/root/backup/"

#shopt -s nullglob

for f in `find /root/backup/ -regextype posix-extended -regex '^.*\.enc'`
do

 #echo "FILES= $FILES , Destination = $DESTINATION, F= $f "
 echo "descifrando $f ..."
 #Por cada fichero $f (nombre del fichero), lo descifra y le pone la extension correcta .tgz
 openssl enc -aes-256-cbc -d -in $f -out $DESTINATION$f.tgz -pass pass:PASSWORD
 echo "Eliminando fichero cifrado $f"
 #rm "$f"
 sleep 1
done


Primero de todo, he pasado a usar una expresión regular, al final el Bash no es tan listo como yo me pensaba...(una pena  :silbar: )
Segundo, estaba mal puesto el nombre de una variable ( Maldita sea mi deslexia transitoria).
Y tercero,  en el comando openssl no debia usar $FILES$f, sino solo $f.

Bueno, muchas gracias a los lectores. Ahora solo me queda mejorarlo un pelin para que me saque el .enc y en vez de .enc.tgz, me deje solo .tgz (ahora me pelearme con el seed)








golffo

jejejeje  gracias por la acojida.