[Cascavel-pm] saber se o arquivo está aberto

Flavio Bei flaviobei em gmail.com
Sexta Agosto 31 07:18:10 PDT 2007


opa Ednardo, blz?
eu não posso renomear ele antes de terminar, pois o processo pra
renomear vai ser executado junto com uma mudança dop local do arquivo,
para ele ser processado por outro programa..
sei que parece uma zona, mas é um esquema que já funcionava aqui.,...
mas era manual..

e hoje apareceu mais uma novidade, esse arquivo vai estar em uso por
um ftp, então preciso esperar o ftp acabar pra mecher nele...

to tentando o fuser, mas não ta resultando nada útil...

abraços

Em 30/08/07, Luciano Giordani Bassani<lgbassani em terra.com.br> escreveu:
> Eu não sabia deste pc -C <nome_prog>, mas aqui funcionou.
> Em todo caso, se tu quiser mesmo utilizar o esquema com o grep, eu recomendo
> tu mudar para algo assim:
> $teste = (`ps xa | grep $retorno\$ | grep -v grep`);
>
> Isso é para evitar que o próprio comando "ps xa | grep" gere um
> "falso-positivo".
>
>
> SDS,
>
> Luciano
>
>
>
> Fernando Oliveira escreveu:
> pq, ao invez de usar 2 comando,  não usa só o ps -C nome_prog???
>
> Em 30/08/07, Flavio Bei <flaviobei em gmail.com > escreveu:
> > consegui uma solução assim, deu certo, mas to com dúvidas... será que
> > o resultado será sempre preciso?
> >
> > o código ficou + - assim
> >
> > ##########################################
> > #!/usr/bin/perl
> > # sistema que vai buscar em um diretório um determinado arquivo
> > # caso o arquivo não esteja em uso por nenhum processo ele é renomeado
> > ##########################################
> >
> > use strict;
> > my $caminho = "/home/user/pasta/";
> > my $extensao = "*.txt";
> > my $completo = $caminho.$extensao;
> > my @encontrados;
> > my $retorno;
> > my $lista;
> > my $teste;
> >
> > $lista = (`ls -1 $completo`);
> >
> > if ($lista ne '')
> > {
> > @encontrados = split('\n', $lista);
> > }
> >
> > foreach $retorno (@encontrados) {
> >
> > $teste = (`ps xa |grep $retorno\$`);
> >
> >         if ($teste eq '')
> >         {
> >         #processa o arquivo pois ele não está em uso por nenhum processo
> >         print ("=======>>> Altera o arquivo $retorno pois não está em
> uso\n");
> >         `mv $retorno $retorno.new`;
> >         }
> >         else
> >         {
> >         #não processa o arquivo pois ele está em uso por algum processo
> >         print ("========>!!!! Não altera o arquivo $retorno\n");
> >         }
> > }
> > ##############################################
> > deu certo, e está rodando de boa, dai joguei na cron e ele fica
> > verificando de tempos em tempos... mas não sei se é a sintaxe do ps,
> > que tem hora que ele não mostra o  processo sendo executado por outro
> > usuário, tem hora que mostra normal...
> > _______________________________________________
> > Cascavel-pm mailing list
> > Cascavel-pm em pm.org
> > http://mail.pm.org/mailman/listinfo/cascavel-pm
> >
>
>
>
> --
> []'s Fernando ________________________________
>
_______________________________________________
Cascavel-pm
> mailing
> list
Cascavel-pm em pm.org
http://mail.pm.org/mailman/listinfo/cascavel-pm
>
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>


-- 
--
Flávio Bei
Webdesigner
(11) 8964 5315


Mais detalhes sobre a lista de discussão Cascavel-pm