Tutorial de acceso a archivos

De NLHPC

Acceso a los archivos usuario desde Windows

Desde Windows, se recomienda usar el programa FileZilla para poder copiar, mover y borrar archivos en su directorio personal dentro del clúster del NLHPC.

Una vez descargado e instalado el programa de la web (enlace descarga), debe iniciarlo y completar los siguientes datos según se muestra en la imagen.:

  • Servidor: sftp://leftraru.nlhpc.cl
  • Usuario: el nombre de usuario de su cuenta en el clúster
  • Contraseña: su contraseña
  • Puerto: 4603

Y puede pulsar en el botón de conexión rápida.

En el siguiente ejemplo es posible ver la sección que se ha completado resaltada por el usuario Dave Bowman (nombre de usuario dbowman). En el panel inferior derecho se ve el contenido de su carpeta local y en el panel izquierdo se visualizará el contenido remoto que el usuario posee en el clúster. Esto le permitirá copiar sus archivos y carpetas arrastrando el contenido entre su equipo local y remoto.

Filezilla-dbowman.png

Problemas de conectividad

Se ha visto que usuarios no pueden utilizar FileZilla y rsync cuando definen variables de entorno en sus archivos ~/.bashrc. A modo de recomendación es preferible que edite su archivo .bash_profile para incluir comandos y configuraciones personalizadas.

Por lo tanto, invitamos a los usuarios a verificar sus configuraciones personalizadas al momento de detectar este tipo de situaciones.

Acceso a los archivos usuario desde Linux/Mac

Filezilla

En caso de que use el sistema operativo Linux o Mac, puede usar también el programa fileZilla, ya que también está disponible para estas plataformas. La forma de configuración es idéntica a la anterior para el sistema Windows. La descarga se puede realizar desde aquí: descarga fileZilla

scp

El comando scp permite copiar archivos desde su máquina personal a su carpeta personal en el clúster y viceversa. El uso de este comando requiere los siguientes parámetros:

  • Puerto: en nuestro caso es el parámetro -P 4603
  • Ruta de origen: puede ser un directorio local como ~/Descargas o remoto como dbowman@leftraru.nlhpc.cl:~/Scripts/
  • Ruta de destino: puede ser un directorio local como ~/Descargas o remoto como dbowman@leftraru.nlhpc.cl:~/Scripts/

En el caso de los parámetros de Ruta de origen/destino, puede ser un directorio local o remoto. En el caso de ser remoto se utiliza la combinación usuario@host.remoto:/ruta/a/directorio.

Por ejemplo, el usuario Dave Bowman (nombre de usuario dbowman) quiere copiar un archivo desde su máquina personal hacia el clúster, puede ejecutar:

scp -P 4603 /home/dave/mis_archivos/archivo dbowman@leftraru.nlhpc.cl:/home/dbowman/direcotorio/remoto/destino/

Para copiar un archivo desde el clúster hacia su computadora local puede ejecutar en su computadora:

scp -P 4603 dbowman@leftraru.nlhpc.cl:/home/dbowman/direcotorio/remoto/archivo home/dave/mis_archivos/

Si desea copiar directorios, debe utilizar el parámetro -r.

Para copiar un directorio desde su coputadora local hacia el clúster (mi directorio -> leftraru):

scp -r -P 4603 /home/dave/mi_directorio dbowman@leftraru.nlhpc.cl:/home/dbowman/

Para copiar un directorio desde el clúster hacia su computadora local (leftraru -> mi directorio):

scp -r -P 4603 dbowman@leftraru.nlhpc.cl:/home/dbowman/mi_directorio /home/dave/mis_descargas/

Los comandos scp indicados aquí se ejecutan en su computadora local.

rsync

Adicionalmente, puede utilizar rsync sobre ssh para realizar la sincronización entre carpetas locales y remotas. Esto es muy útil ya que le permite solo sincronizar los cambios entre dichas carpetas, evitando copiar el contenido que ya haya sido copiado y no presenten modificaciones.

Por ejemplo, si quiere sincronizar el contenido de su "directorio_local" con "directorio_remoto" en la raíz de su "home" en el clúster, el comando a usar sería:

rsync -avz -e "ssh -p 4603"  /directorio_local/ usuario@leftraru.nlhpc.cl:/directorio_remote/

En caso de querer realizar la sincronización a la inversa (desde el clúster a su máquina local):

rsync -avz -e "ssh -p 4603" usuario@leftraru.nlhpc.cl:/directorio_remote/ /directorio_local/

Tenga en cuenta que se debe indicar de manera explícita el uso de ssh usando el puerto 4603 y luego indicar los parámetros de "origen" y "destino" de la sincronización. Siempre se realiza la escritura en "destino", pero nunca se borra nada a no ser que especifique la opción "--del", entonces si un archivo se borró en origen, también es borrado en destino.

Es importante poner la barra "/" al final del nombre del directorio para que sincronice el contenido de las dos carpetas. De no ser así, rsync entiende que es el directorio en sí la que tiene que sincronizarse, no su contenido. Es decir, que si en el primer ejemplo se omitiera la barra en "directorio_local", dicho directorio sería copiada dentro de "directorio_remoto", a no ser que ya existiera en "directorio_remoto" una carpeta llamada "directorio_local", en cuyo caso se sincronizaría. La regla general es poner siempre barras al final de los nombres de directorio a sincronizar, para sincronizar el contenido.

El comando rsync permite configuración mucho más sofisticadas que le permiten tener un control exhaustivo de la sincronización. Si desea más información sobre este comando, consulte la siguiente documentación rsync

Descarga de archivos con WGET

Para la Descarga de archivos mediante el comando wget, lo que resulta útil para descargar archivos desde sitios web como repositorios Git desde su cuenta en Leftraru.

Para esto es posible utilizar la siguiente sintáxis:

wget -c --user USER --password PASSWORD URL

En este caso, el parámetro utilizado por wget son los siguientes:

  • -c (opcional): permite continuar descargas que hayan sido interrumpidas
  • --user USER (opcional): reemplazando USER por el nombre de usuario a utilizar para descargas que requieran autenticación
  • --password PASSWORD (opcional): reemplazando PASSWORD por la contraseña a utilizar para descargas que requieran autenticación
  • URL (mandatoria): indica la URL desde la que queremos realizar nuestra descarga

Ejemplo de descarga

Si queremos descargar desde GitHub la versión 3.3.a de tmux, podemos ejecutar desde nuestra cuenta:

ml wget
wget https://github.com/tmux/tmux/archive/refs/tags/3.3a.tar.gz

Y en el directorio en en que nos encontremos, veremos que se ha descargado el archivo tmux-3.3a.tar.gz.

Ayuda con wget

Puede obtener más información del comando wget ejecutando uno de los siguientes comandos:

wget --help
man wget

Para descargas de varios archivos con wget recomendamos la lectura de https://www.baeldung.com/linux/wget-parallel-downloading

WGET y SLURM

Para ejecutar trabajos de descarga con nuestro gestor de tareas, recomendamos utilizar un script similar al siguiente:

#!/bin/bash
#SBATCH -J wgetDownload
#SBATCH -p general
#SBATCH -c 1
#SBATCH -n 1
#SBATCH --mem-per-cpu=500
#SBATCH --mail-user=foo@example.com
#SBATCH --mail-type=ALL
#SBATCH --output=wgetDownload_%j.out
#SBATCH --error=wgetDownload_%j.err

wget -c --user USER --password PASSWORD URL

Vea que la asignación de memoria es baja, para evitar que dicha tarea sea cancelada, ya que la copia de archivos utilizará muy pocos recursos de cómputo. Recuerde considerar la carga del clúster para seleccionar una partición adecuada para este tipo de tareas.