Ajuda em Script relatorio de softwares

1. Ajuda em Script relatorio de softwares

Obelix
Obelix192

(usa Debian)

Enviado em 01/03/2021 - 18:18h

Fala galera, to com 2 problemas nesse Script(trabalho da facu), se alguem pode me ajudar
1º na 6 linha que ao invés dele ser executado a cada 30 segundos que seja executado as segundas, quartas e sextas às 03:45 da manhã

2º na 35 linha que o relatorio csv seja enviado compactado e armazenado localmente no seguinte local/padrão:
• /var/backups/relatorios/<ano>/<mes>/softwares-<data>.tar.gz


#!/bin/bash
declare -A MER
declare -a ver
declare -a instalar
while true; do
sleep 30
echo "rodando... espere.."
for j in 1 2 3 4 ; do
let contador=0
for APT in `dpkg-query -W --showformat='${Package}\t${Version}\t${Priority}\t${Section}\n'|awk -v i=$j '{print $i}'`;do
let contador=$contador+1
MER[$j,$contador]=$APT
# echo ${MER[$j,$contador]}
if [ $j -lt 2 ];
then
ver[$contador]=`apt-cache show ${MER[$j,$contador]} | grep Version |awk '{print $2}'`
fi
if [ $j -eq 2 ];
then
if [ ${ver[$contador]} = ${MER[$j,$contador]} ];
then
instalar[$contador]="Nao"
else
intalar[$contador]="Sim"
fi
fi
done
done
for ic in $(seq 1 $contador) ; do
echo "${MER[1,$ic]},${MER[2,$ic]},${ver[$ic]},${MER[3,$ic]},${MER[4,$ic]},${instalar[$ic]}">>resultado.csv
done
echo "finalizado!"
done


  


2. Re: Ajuda em Script relatorio de softwares

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 01/03/2021 - 18:54h

Obelix192 escreveu:

Fala galera, to com 2 problemas nesse Script(trabalho da facu), se alguem pode me ajudar
1º na 6 linha que ao invés dele ser executado a cada 30 segundos que seja executado as segundas, quartas e sextas às 03:45 da manhã

2º na 35 linha que o relatorio csv seja enviado compactado e armazenado localmente no seguinte local/padrão:
• /var/backups/relatorios/<ano>/<mes>/softwares-<data>.tar.gz


#!/bin/bash
declare -A MER
declare -a ver
declare -a instalar
while true; do
sleep 30
echo "rodando... espere.."
for j in 1 2 3 4 ; do
let contador=0
for APT in `dpkg-query -W --showformat='${Package}\t${Version}\t${Priority}\t${Section}\n'|awk -v i=$j '{print $i}'`;do
let contador=$contador+1
MER[$j,$contador]=$APT
# echo ${MER[$j,$contador]}
if [ $j -lt 2 ];
then
ver[$contador]=`apt-cache show ${MER[$j,$contador]} | grep Version |awk '{print $2}'`
fi
if [ $j -eq 2 ];
then
if [ ${ver[$contador]} = ${MER[$j,$contador]} ];
then
instalar[$contador]="Nao"
else
intalar[$contador]="Sim"
fi
fi
done
done
for ic in $(seq 1 $contador) ; do
echo "${MER[1,$ic]},${MER[2,$ic]},${ver[$ic]},${MER[3,$ic]},${MER[4,$ic]},${instalar[$ic]}">>resultado.csv
done
echo "finalizado!"
done

Boa noite.
Quanto ao sleep, se é para executar em data e hora específicas, use o crontab.

OBS.: Antes de tudo, organize o script.
Veja: https://pt.wikipedia.org/wiki/Indentação
Depois de organizar, cheque o loop infinito...
______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts