Comment transférer mes fichiers entre deux comptes qui m'appartiennent ?

Vous avez obtenu par exemple de nouveaux comptes sur les machines de calcul de l'IDRIS. Il peut être intéressant de transférer, sur votre nouveau compte, les fichiers situés sur votre ancien compte.

Supposons que vous souhaitiez transférer vos fichiers depuis le compte rsrc000 situé sur la machine source vers le compte rcbl000 situé sur la machine cible.

1ère méthode

  • Placez les fichiers sous $WORKDIR de la machine source :
  source-rsrc000 : cd $HOME # ou autre répertoire à transférer.
  source-rsrc000 : tar -cvf $WORKDIR/transfert.tar

À noter qu'il est possible d'ajouter à ce fichier tar d'autres fichiers provenant d'autres répertoires en répétant cette opération. Pour ne pas écraser mais ajouter, il faut remplacer l'otion -cvf par l'option -rvf (cf. man tar).

  • Transférez les fichiers de la machine source vers cible si ces deux machines sont différentes (sinon l'étape 2 est inutile). Pour cela connectez vous sur le compte rcbl000 sur cible puis :
  cible-rcbl000 : cd $WORKDIR
  cible-rcbl000 : sftp source
  Name : rcbl000
  Password : 
  ftp>get /workgpfs/rech/src/rsrc000/transfert.tar transfert.tar
  ftp>quit
  • Il vous reste alors à installer les fichiers transférés sous votre compte rcbl000 situé sur cible.
  cible-rcbl000 : cd $HOME #ou autre répertoire si on veut éviter les 
                           #écrasements de fichiers déjà existants !
  cible-rcbl000 : tar -xvf $WORKDIR/transfert.tar

2ème solution plus simple

Si par exemple, vous souhaitez recopier récursivement toute votre aborescence dans le HOME de la machine cible, utilisez depuis le HOME de source la commande :

source-rsrc000 : rcp -r * rsrc000@cible:~

Si vous ne souhaitez recopier que l'aborescence du répertoire REP1 de source dans le même répertoire de cible, utilisez la commande :

source-rsrc000 : rcp -r ~/REP1/*  rsrc000@cible:~/REP1

À noter que dans ce cas, le répertoire REP1 doit pré-exister sur la machine cible.

3ème solution plus rapide (transfert d'un seul fichier)

Comme précédemment, le fichier .rhosts autorisant les r-commandes depuis la machine source n'est plus nécessaire sauf pour des transferts entre deux logins différents.

Si par exemple, vous souhaitez recopier récursivement toute votre aborescence dans le HOME de la machine cible, utilisez depuis le HOME de source la commande :

source-rsrc000 : tar -cvf - . | rsh cible -l rsrc000 tar -xvf -

Si vous ne souhaitez recopier que l'aborescence du répertoire REP1 de source dans le répertoire REP2 de cible, utilisez la commande :

source-rsrc000 : tar -cvf - REP1/* | rsh cible -l rsrc000 ''cd REP2; tar -xvf -''

À noter que dans ce cas, le répertoire REP2 doit pré-exister sur la machine cible.