Olá pessoal, alguém pode me ajudar.
Quando corro o cat log_stats.txt, ele puxa informações duplicadas.
Já dei uma pesquisada, mas não consigo identificar o erro ou o que fazer.
Olá pessoal, alguém pode me ajudar.
Quando corro o cat log_stats.txt, ele puxa informações duplicadas.
Já dei uma pesquisada, mas não consigo identificar o erro ou o que fazer.
Oi tudo bem?
Preciso do script para analizar onde está o erro.
E o comando cat apenas lê o arquivo e não insere informações.
O erro está no script que gera estas informações.
Confere ai e me envie o script que gera o arquivo log_stats.txt .
Ronaldo, é o mesmo da aula.
Segue abaixo!
LOG_DIR="../myapp/logs"
ARQUIVO_DIR="../myapp/logs-processados"
mkdir -p $ARQUIVO_DIR
echo "Verificando os logs no diretorio $LOG_DIR"
find $LOG_DIR -name "*.log" -print0 | while IFS= read -r -d '' arquivo; do
grep "ERROR" $arquivo > "${arquivo}.filtrado"
grep "SENSITIVE_DATA" $arquivo >> "${arquivo}.filtrado"
sed -i 's/User password is .*/User password is REDACTED/g' "${arquivo}.filtrado"
sed -i 's/User password reset request with token .*/User password reset request with token REDACTED/g' "${arquivo}.filtrado"
sed -i 's/API key leaked: .*/API key leaked: REDACTED/g' "${arquivo}.filtrado"
sed -i 's/User credit card last four digits: .*/User credit card last four digits: REDACTED/g' "${arquivo}.filtrado"
sed -i 's/User session initiated with token: .*/User session initiated with token: REDACTED/g' "${arquivo}.filtrado"
sort "${arquivo}.filtrado" -o "${arquivo}.filtrado"
uniq "${arquivo}.filtrado" > "${arquivo}.unico"
num_palavras=$(wc -w < "${arquivo}.unico")
num_linhas=$(wc -l < "${arquivo}.unico")
nome_arquivo=$(basename "${arquivo}.unico")
echo "Arquivo: $nome_arquivo" >> "${ARQUIVO_DIR}/log_stats_$(date +%F).txt"
echo "Número de linhas: $num_linhas" >> "${ARQUIVO_DIR}/log_stats_$(date +%F).txt"
echo "Número de palavras: $num_palavras" >> "${ARQUIVO_DIR}/log_stats_$(date +%F).txt"
echo "--------------------------" >> "${ARQUIVO_DIR}/log_stats_$(date +%F).txt"
if [[ "$nome_arquivo" == *frontend* ]]; then
sed 's/^/[FRONTEND] /' "${arquivo}.unico" >> "${ARQUIVO_DIR}/logs_combinados_$(date +%F).log"
elif [[ "$nome_arquivo" == *backend* ]]; then
sed 's/^/[BACKEND] /' "${arquivo}.unico" >> "${ARQUIVO_DIR}/logs_combinados_$(date +%F).log"
else
cat "${arquivo}.unico" >> "${ARQUIVO_DIR}/logs_combinados_$(date +%F).log"
fi
done
sort -k2 "${ARQUIVO_DIR}/logs_combinados_$(date +%F).log" -o "${ARQUIVO_DIR}/logs_combinados_$(date +%F).log"
Acessa o diretório com o arquivo log_stats.txt e exclui ele.
Rode o script novamente e confere se o erro continua.
Me avise o resultado.
Cada vez que voce roda o script ele adiciona as informaçoes e como sua base de informações é estatico vai repetir as informações.
Não há nada de errado com o arquivo.
No caso toda vez que voce roda o script ele adiciona as informações dos arquivos de forma cumulativa.
E como essas informações não mudam o arquivo fica com informações repetidas.
Espero que tenha lhe ajudado.
Bons estudos.
Para ver modificações no arquivo voce pode inserir um arquivo de log do seu sistema para monitorar.
Bons estudos.
Qualquer duvida ou se dei alguma informação errada me avise.