[OT] Shell programming

2 respostas
smota

Olaaas …

Eu estou fazendo um script shell usando sh (no máximo ksh) para o HP-UX (na verdade é duvida eh genérica já que nao sei fazer em lugar nenhum :lol: )

Tenho um servidor que roda de 5 em 5 minutos escrevendo em um arquivo de log, preciso enviar esse arquivo de log pra um servidor FTP e depois apaga-lo (limpar) …

Meu problema é :arrow: como pelo script shell posso saber se o programa está usando o arquivo de log???

O programa abre e fecha o arquivo em cada processamento, entao pensei se tiver um jeito de saber os arquivos que estao abertos eu posso procurar o meu danado na lista :o

ideias?

2 Respostas

louds

não sei se existe ou como funciona no hpux, porem no linux voce tem 2 formas de fazer isso:

Lendo /proc/[b]pid[b]/fd/*
Onde pid é o pid do processo e * é uma lista de números representando os varios descritores do processo.
Bastaria voce procurar dentre estes descritores pelo correto.

Usando o comando lsof (disponivel em varias plataformas)

luiz_ross

No hp-ux existe o comando fuser -u /seuarquivo que serve para saber qual o usuário está usando o arquivo naquele momento, dando seu pid, com isso vc vai saber se seu arquivo esta sendo usado naquele momento.
Se o seu arquivo é constantemente acessado, não é recomendado apaga-lo e sim zerá-lo com >/arquivo. assim o SO não perde o ponteiro do arquivo fudendo toda sua memória.

Criado 22 de setembro de 2003
Ultima resposta 22 de set. de 2003
Respostas 2
Participantes 3