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
#!/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.
Código:
#!/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 )
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)