Expurgo de arquivos do File System com arquivos de bandeira [RESOLVIDO]

1. Expurgo de arquivos do File System com arquivos de bandeira [RESOLVIDO]

Lucas Rezende
lucasgrohl

(usa Ubuntu)

Enviado em 11/03/2011 - 10:11h

Bom dia pessoal,

Sou novo no Linux e estou precisando fazer um script para o trabalho que realize uma limpeza de arquivos no File System.

Alguns arquivos são gerados em um diretório (ex.: arquivo1.dat), e são caregados em duas bases de dados diferentes simultâneamente.

Nesse caso, um arquivo não pode ser removido após a execução pois a outra carga pode não ter acontecido ainda.

Ao invés da remoção, um arquivo vazio, com o mesmo nome, é criado no mesmo diretório para cada database target com a extensão alterada (ex.: arquivo1.dat.ora e arquivo1.dat.tera).

Um outro shell ficará rodando em background e verificará a existência desses arquivos. Quando houverem os 2 (.ora e .tera), ele remove os 3 arquivos (.dat, .ora e .tera).

Eu estou com dúvida no como fazer isso. Não conheço muito bem Linux e não sei quais são as ferramentas (comandos), que disponho para tornar esse trabalho mais fácil.

Desde já agradeço pela a ajuda.

Abraço!


  


2. Tente esse script

Ricardo Lino Olonca
ricardoolonca

(usa Debian)

Enviado em 11/03/2011 - 11:41h

#!/bin/bash
while true
do
if [ -f arquivo.ora ] && [ -f arquivo.tera ]
then
rm -f arquivo.ora arquivo.tera arquivo.dat
echo Arquivos excluidos...
break
else
echo Aguardando...
sleep 60
fi
done

Esse script vai checar a cada minuto se os arquivos arquivo.ora e arquivo.tera existem. Se existirem os dois, então os arquivo arquivo.ora, arquivo.tera e arquivo.dat serão apagados e o script termina.


3. Continuação...

Lucas Rezende
lucasgrohl

(usa Ubuntu)

Enviado em 11/03/2011 - 13:46h

O problema é que haverão mais de um arquivo .dat, .ora e .tera. Cada arquivo .dat é um arquivo de dados extraído (mais ou menos 800 tabelas = mais ou menos 800 arquivos .dat,.ora e .tera).

Além de comparar a extensão, eu preciso comparar o nome anterior ao "." para saber se os 3 arquivos são referentes à mesma coisa.

Abraço!


4. Solução

Lucas Rezende
lucasgrohl

(usa Ubuntu)

Enviado em 11/03/2011 - 14:56h

Eu encontrei uma solução.

Coloquei um While infinito e dentro dele coloquei um FOR dentro de outro FOR onde cada arquivo é comparado com todos os outros do diretório. Se achar o que eu quero, remove os 3. Se não encontrar, incrementa um flag de cancelamento de processo ocioso e quando chegar a 5 rodadas sem encontrar nada ele faz um "exit 0".

Dentro do While também usei um "sleep 600" para dar um intervalo de 10 minutos para cada tentativa.

Obrigado pelo esforço em tentar me ajudar!

Grande abraço!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts