Vous êtes ici : Support technique → FAQ générale → Réseau → mfget et
mfput.
Les commandes mfget et mfput ont été développées à l'IDRIS pour optimiser et sécuriser les transferts entre les machines de calcul du centre et la machine fichiers Gaya.
rxxx000@machine_i: mfget fic_gaya fic_calcul
rxxx000@machine_i: mfput fic_calcul fic_gaya
...
# Copie du fichier d1 contenu dans le $HOME de Gaya dans le $TMPDIR de la machine de calcul
mfget d1 $TMPDIR
# Copie du fichier donnee2 contenu dans le $HOME de Gaya dans le $TMPDIR de la machine de calcul sous le nom d2
mfget donnee2 $TMPDIR/d2
# Copie du fichier donnee3 contenu dans le $HOME de Gaya sous le répertoire REP
# dans le $TMPDIR de la machine de calcul sous le nom d3
mfget REP/donnee3 $TMPDIR/d3
cd $TMPDIR
# Exécution avec lecture des fichiers d1, d2, d3
# et écriture des fichiers r1, r2 par l'exécutable
./a.out
# Copie du fichier r1 de la machine de calcul dans le $HOME de Gaya
mfput r1 r1
# Copie du fichier r2 de la machine de calcul dans le $HOME de Gaya dans le répertoire REP sous le nom resultat2
mfput r2 REP/resultat2
...
Pour avoir plus de renseignements sur les options et capacités de transfert de ces commandes, nous vous conseillons de consulter leurs manuels en ligne sur les serveurs de calcul (man mfget, man mfput).
Par défaut, le nom d'utilisateur (login) distant sur Gaya est le même que le
nom d'utilisateur local sur la machine de calcul.
L'option -u permet un transfert de fichiers avec un nom
d'utilisateur distant différent.
Les commandes mfget/mfput étant basées sur les
r-commande, l'option -u nécessite que le fichier .rhosts
du propriétaire du compte sur Gaya autorise un autre utilisateur à effectuer
le transfert.
Considérons:
Dans l'exemple qui suit, rxxx000 va transferer des fichiers à partir
ou sur le compte de l'utilisateur ryyy999 de Gaya. Pour ce faire,
dans le $HOME, l'utilisateur ryyy999 doit disposer du
.rhosts (droits UNIX 600) avec la ligne suivante:
ryyy999@gaya: cat ~/.rhostsoù: prod-rhosts.idris.fr est la dénommination générique de l'ensemble des machines de calcul de l'IDRIS. Substituer prod-rhosts.idris.fr par machine_i.idris.fr limite la portée de la commande depuis ou vers la machine visée et elle seule.
prod-rhosts.idris.fr rxxx000
rxxx000@machine_i: mfput -u ryyy999 fic_A fic_B
rxxx000@machine_i: mfget -u ryyy999 fic_B fic_A
Si votre shell de login sur Gaya est le bash, csh où tcsh et que,
dans vos fichiers d'environnement (.bashrc, .cshrc où .tcshrc), une
sortie à l'écran est générée, alors le transfert échoue. La solution
consiste à adapter (rendre muet) vos fichiers d'environnement de la
manière suivante:
if ( { tty -s } ) then # Exécuté seulement si on est dans une session interactive echo "message" endif
if $(tty -s)
then
# Exécuté seulement si on est dans une session interactive
echo "message"
fi
N.B.1 : l'usage de ces commandes est bloquant en cas de non présence de
la machine fichier. Dans la mesure où le temps elapsed est facturé,
il est conseillé d'utiliser la classe "archive"
lorsqu'elle existe pour ces activités de transfert.
N.B.2 : lors d'un transfert d'aborescence ou pour privilégier le transfert d'un gros fichier (~Go) à une multitude de petits, la commande tar existe sur toutes nos machines.