Validação de tempo [RESOLVIDO]

1. Validação de tempo [RESOLVIDO]

thiago
lacerdat25

(usa Red Hat)

Enviado em 20/10/2019 - 07:38h

Pessoal,

Criei um bash que valida se tem um arquivo num diretório. Caso o arquivo exista, esse bash vai iniciar uma contagem de tempo: HORA:MIN:SEGU, afim de validar o tempo que o arquivo está na mesma.

O programa funciona, só que ao remover o arquivo da pasta, ele permanece a contagem do tempo, o correto seria parar.

Se alguém puder me dar um help....

obrigado!

SEGUE ABAIXO:
caminho="/mnt/pasta/"
teste=$(find $caminho | grep -c arquivo.csv | cut -d/ -f4)#!/bin/bash

echo "$teste"
s=00
m=00
h=00

while [ "$teste" == 1 ];do

sleep 1
s=$((s+1))
[ $s -eq 60 ] && m=$((m+1)) && s=00
[ $m -eq 60 ] && h=$((h+1)) && m=00

#clear
echo "CRITICAL - Tempo que o arquivo esta na pasta: %02dh:%02dmin:%02ds" $h $m $s
exit 0
done


  


2. MELHOR RESPOSTA

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 20/10/2019 - 10:40h

Veja aí se resolve, adapte-o ao seu propósito:
#!/bin/bash

caminho="/tmp/teste"
arquivo="arquivo.csv"
DATA=`date +%s`

while true
do
teste=$(find $caminho -type f 2>/dev/null | grep -c $arquivo)
if [ "$teste" -eq 1 ]; then
tempo=$(date -u --date @$((`date +%s` - $DATA)) +%H:%M:%S)
echo "O arquivo $arquivo existe: $tempo"
else
echo "O arquivo $arquivo não existe"
fi
sleep 1
done


3. Re: Validação de tempo [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 20/10/2019 - 17:21h


lacerdat25 escreveu:

Pessoal,

Criei um bash que valida se tem um arquivo num diretório. Caso o arquivo exista, esse bash vai iniciar uma contagem de tempo: HORA:MIN:SEGU, afim de validar o tempo que o arquivo está na mesma.

O programa funciona, só que ao remover o arquivo da pasta, ele permanece a contagem do tempo, o correto seria parar.

Se alguém puder me dar um help....

obrigado!

SEGUE ABAIXO:
caminho="/mnt/pasta/"
teste=$(find $caminho | grep -c arquivo.csv | cut -d/ -f4)#!/bin/bash

echo "$teste"
s=00
m=00
h=00

while [ "$teste" == 1 ];do

sleep 1
s=$((s+1))
[ $s -eq 60 ] && m=$((m+1)) && s=00
[ $m -eq 60 ] && h=$((h+1)) && m=00

#clear
echo "CRITICAL - Tempo que o arquivo esta na pasta: %02dh:%02dmin:%02ds" $h $m $s
exit 0
done


Boa tarde Lacerda.
Segue sugestão:
#!/bin/bash
inic=$(date +%s.%N);clear;
echo " Inicio: $(date -d"@${inic}" +%H:%M:%S.%3N)"; #TESTES
while [ $(find /home/user/Documentos/ -type f -iname "TEXTO.csv") ];do #Enquanto o arquivo existir, mantem o laço....
printf "\e[2;2f$(date +%H:%M:%S.%3N) => Arquivo encontrado\n";
done
FIM=$(bc <<< "scale=3;$(date +%s.%N)-${inic}");
echo -e "\n Fim: $(date +%H:%M:%S.%3N)\n Permaneceu na pasta por: $(date -u -d"@${FIM}" +%H:%M:%S.%3N)\n"

É isso.....
Testei aqui e funciona a contento..... :)

Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts