É possível para um usuário não-raiz forçar um cliente NFS a atualizar as informações que ele contém sobre uma árvore de diretórios? Meu problema é que eu quero fazer o seguinte:
Execute um grande trabalho de compilação (via LSF) em alguma caixa "A". Isso gera uma carga de arquivos binários, que são gravados em um diretório em um servidor de arquivos. Tudo isso é feito através do NFS.
Execute algum tipo de script de teste ou trabalho de acompanhamento que use esses novos arquivos binários. Esse script é executado na caixa "B", que exibe o mesmo diretório usando o NFS.
O problema parece ser o de cache. Suponha que foo/bar.o
seja criado pelo passo (1). Quando a etapa (2) for executada, ls foo
talvez não mostre bar.o
. É possível trabalhar principalmente em torno disso dormindo por (digamos) trinta segundos e esperando que o cache seja automaticamente atualizado, mas ... yuck. E às vezes não funciona!
O que eu adoraria fazer é emitir algum comando dizendo "Sim, eu não me importo se isso torna o acesso a foo
lento, mas por favor verifique as entradas do diretório". Eu posso ver que isso pode permitir que um usuário degrade o desempenho de outros usuários, então eu iria entender se isso requer privilégios de root. Se assim for, existe alguma outra maneira que eu possa garantir que o script em (2) veja os novos arquivos?
Caso seja relevante, todas as caixas do cliente estão executando o Red Hat Enterprise Linux 5, que usa um kernel baseado na versão 2.6.18 (que presumivelmente também determina a versão do cliente NFS)