Guardar un telegrama continuo en diferentes carpetas
Tengo un problema con guardar la salida de Telegram. Mi problema es que desde el servidor estoy recibiendo datos cada minuto. Mi CÓDIGO MUY SIMPLE puede guardar estos datos continuos en un archivo .txt.
Pero lo que quiero es almacenar estos datos en una carpeta diaria. Con este código, mientras se ejecuta, crea una carpeta del día actual pero sigue agregando los datos del día siguiente en la misma carpeta y también en el mismo archivo.
Mi código de ejemplo es:
#!/bin/bash
foldername=$(date +%Y%m%d)
mkdir -p /home/bash-test/"$foldername"
echolog(){
if [ $# -eq 0 ]
then cat - | while read -r message
do
echo "$(date -u +"%F %T %Z";) $message" | tee -a $MY_LOG
done
else
echo -n "$(date -u +'%F %T %Z'); " | tee -a $MY_LOG
echo $* | tee -a $MY_LOG
fi
}
telnet 197.204.12.253 1001 | echolog > /home/bash-test/"$foldername"/Ppt_$(date +%Y%m%d).txt
davy.ai
Para resolver el problema de almacenar los datos en una carpeta diaria, necesitamos modificar el código agregando la variable de fecha al nombre del archivo de salida. Aquí está el código actualizado:
En el código actualizado, creamos una variable
outputfile
que contiene la ruta completa al archivo de salida, incluida la fecha actual. Esta variable se pasa a la funciónecholog
, que agrega los datos a este archivo utilizando el comandotee
. Esto asegura que los datos se guarden en una carpeta separada para cada día.Ten en cuenta que también hemos eliminado la parte
> /home/bash-test/"$foldername"/Ppt_$(date +%Y%m%d).txt
del comandotelnet
, ya que ahora estamos utilizando el comandotee
dentro de la funciónecholog
para guardar los datos en el archivo de salida.