tonyhts
(usa Arch Linux)
Enviado em 28/08/2015 - 16:55h
Perdoe-me !
Havia colado a versão errada ;(
Segue a correta, já com a correção da porcentagem quando for 100%
#!/bin/bash
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
# *
# Script criado para resolver o problema do user @Alexfurlan do VOL. *
# *
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
# *
# Lista os arquivos .csv na pasta em que for executado, *
# trata, cria a coluna porcentagem e bloco de estatísticas *
# e gera um arquivo HTML. *
# *
# Uso: *
# ./script.sh *
# *
# Ao executar, as informaçoes do cabeçalho serão solicitadas: *
# *
# Nome da empresa: Se o nome da empresa não for informado, *
# assumira o nome padrão (Viva o Linux Co.). *
# *
# Local do Servidor: Se o Local do servidor não for informado, *
# assumirá o local extraido da coluna 1, linha 2 do ultimo *
# arquivo csv listado na pasta. *
# *
# Data de Referência : Se a data de referencia não for informada, *
# o valor sera a data da execução do script. *
# *
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
# Variáveis
# Arquivo Final (HTML)
final="lista_server_$(date '+%d%m%Y').html"
# Nome da Empresa - (Se o nome da empresa não for informado, assumira o nome padrão (Viva o Linux Co.)
clear
echo -e "\nPor favor informe o nome da Empresa: "
read empresa
if [ -z "$empresa" ]
then
echo -e "\nATENÇÃO:: Empresa NÃO informada ! Assumindo nome padrão: Viva ao Linux Co."
sleep 1
empresa="Viva ao Linux Co."
fi
# Local do SERVIDOR - (Se o Local do servidor não for informado, assumirá o local extraido da coluna 1, linha 2 do ultimo arquivo csv listado na pasta)
echo -e "\nPor favor informe o Local do Servidor: "
read local_server
if [ -z "$local_server" ]
then
echo -e "\nATENÇÃO:: Local do servidor Não informado! Assumindo nome da unidade, extraído do ultimo arquivo csv listado na pasta."
sleep 1
local_server=$(tail -1 $(ls *.csv | tail -1 ) | awk -F";" '{print$1}')
fi
# Data de Referencia - ( Se a data de referencia não for informada, o vlor sera a data da execução do script)
echo -e "\nPor favor informe a Data de Referencia: "
read data_ref
if [ -z "$data_ref" ]
then
echo -e "\nATENÇÃO:: Data NÃO informada ! Assumindo a data de hoje."
sleep 1
data_ref=$(date '+%d %m %Y')
fi
tmp="/tmp/arq_temp"
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
# Funções
monta_head () {
echo -e "<html>\n<head><meta charset="UTF-8">\n<title>Lista Servers</title>\n</head>\n<body>"
echo -e "<h2>Lista de Servidores</h2>\n\n"
echo -e "<h3>Empresa: $empresa</h3>"
echo -e "<h3>Local: $local_server</h3>"
echo -e "<h3>Data de Referência: $data_ref</h3>\n\n\n"
echo -e "<table border='1'>\n<tr><th> UNIDADE </th><th>IP SERVIDOR</th><th>TOTAL LOECs</th><th>TOTAL LA</th><th>%</th>"
}
monta_body () {
for arq in $(ls *.csv)
do echo -e "$(tail -1 $arq | sed 's/\s//g;s/;/<\/td><td>/g;s/^/<tr><td>/g;s/$/<\/td>/g')<td>$(tail -1 $arq |awk -F';' '{if ($4 =="0") print "0";else print$4/$3*100}' | sed -r '/\.[0-9]{4}$/ s/[0-9]{2}$//;s/$/%/')</td></tr>"
done
}
monta_footer () {
echo -e "</table>\n\n <p> $(ls *.csv | wc -l) arquivos CSVs foram tratados com sucesso!\n\n</p>"
# Estatísticas
egrep '^<tr><td>' $final | sed 's/[<a-z\/>]/ /g' | tr -s " " " " > $tmp
qtd_unid=$(wc -l $tmp | sed 's/[^0-9]//g')
qtd_loec=$(echo "$(awk '{print$3}' $tmp | tr "\n" "+" | sed 's/\+$//')" | bc)
qtd_loec_auto=$(echo "$(awk '{print$4}' $tmp | tr "\n" "+" | sed 's/\+$//')" | bc)
util_loec_auto_ac90=$(awk '{print$5}' $tmp | egrep '^(9|100)' | wc -l)
util_loec_auto_oc50=$(awk '{print$5}' $tmp | egrep '^[5-9]' | wc -l)
util_loec_auto_ab50=$(awk '{print$5}' $tmp | egrep '^([0-4]|50)' | wc -l)
util_loec_auto_none=$(awk '{print$5}' $tmp | egrep '^0%*' | wc -l)
echo -e "<h3> Estatísticas</h3>\n\n"
echo -e "<p>Qtde LOEC Automática: $qtd_loec_auto</p>"
echo -e "<p>Qtde LOECs : $qtd_loec\n\n\n</p>"
echo -e "<p>Unidades acima de 90% de utilização de LOEC Automática: $util_loec_auto_ac90</p>"
echo -e "<p>Unidades acima de 50% de utilização de LOEC Automática: $util_loec_auto_oc50</p>"
echo -e "<p>Unidades abaixo de 50% de utilização de LOEC Automática: $util_loec_auto_ab50</p>"
echo -e "<p>Unidades com 0% de utilização de LOEC Automática: $util_loec_auto_none</p>"
echo -e "</body>\n</hmtl>"
}
# Construindo HTML
monta_head > $final
monta_body >> $final
monta_footer >> $final
if [ $? -eq 0 ]
then
echo -e "\nScript executado com sucesso!\n\nForam tratados $(ls *.csv | wc -l) arquivos CSVs.\n\nO arquivo HTML foi gerado em "$(pwd)"/$final\n\n"
echo -e "* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *"
echo -e "* Para acessar o arquivo HTML gerado via terminal, execute: *"
echo -e "* firefox $final *"
echo -e "* *"
echo -e "* Obrigado ! *"
echo -e "* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\n"
else
echo -e " \n\n A operação NÃO foi realizada corretamente"
fi
abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.
--- Mestre dos Mestres - Alan Turing ---