Est-il possible pour un utilisateur non root de forcer un client NFS à mettre à jour les informations qu'il détient sur une arborescence de répertoires? Mon problème est que je veux faire ce qui suit:
Exécutez un gros travail de compilation (via LSF) sur une boîte "A". Cela génère un chargement de fichiers binaires, qui sont écrits dans un répertoire sur un serveur de fichiers. Tout cela se fait sur NFS.
Exécutez une sorte de script de test ou de tâche suivante qui utilise ces nouveaux fichiers binaires brillants. Ce script s'exécute sur la boîte "B", qui affiche le même répertoire à l'aide de NFS.
Le problème semble être celui de la mise en cache. Supposons que cela foo/bar.o
soit créé par l'étape (1). Lorsque l’étape (2) s’exécute, il se ls foo
peut qu’elle ne soit pas affichée bar.o
. Il est possible de contourner ce problème en dormant trente secondes environ et en espérant que le cache se mettra à jour automatiquement, mais… beurk. Et parfois ça ne marche pas!
Ce que j'aimerais faire, c’est émettre une commande disant: "Oui, cela ne me dérange pas si cela foo
ralentit l’ accès , mais vérifiez bien les entrées du répertoire". Je peux voir que cela pourrait permettre à un utilisateur de dégrader les performances des autres utilisateurs. Je comprendrais donc si cela nécessite des privilèges root. Si tel est le cas, existe-t-il un autre moyen de garantir que le script sur (2) voit les nouveaux fichiers?
Le cas échéant, toutes les machines clientes exécutent Red Hat Enterprise Linux 5, qui utilise un noyau basé sur la version 2.6.18 (qui détermine vraisemblablement également la version du client NFS).