Diferencia entre revisiones de «Tutorial de acceso a archivos»

De NLHPC
(Se reemplaza Leftraru por clúster para dejar las instrucciones genéricas.)
(Se reemplaza Leftraru por clúster para dejar las instrucciones genéricas. Se corrigen typos)
Línea 40: Línea 40:
=== rsync ===
=== rsync ===


Adicionalmente, puede utilizar <code>rsync</code> sobre <code>ssh</code> 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, sin copiar cada vez el contenido.
Adicionalmente, puede utilizar <code>rsync</code> sobre <code>ssh</code> 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 Leftraru, el comando a usar sería:
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 -avzh  /directorio_local/ usuario@leftraru.nlhpc.cl:/directorio_remote/
  rsync -avzh  /directorio_local/ usuario@leftraru.nlhpc.cl:/directorio_remote/


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


  rsync -avzh usuario@leftraru.nlhpc.cl:/directorio_remote/ /directorio_local/
  rsync -avzh usuario@leftraru.nlhpc.cl:/directorio_remote/ /directorio_local/
Línea 52: Línea 52:
Tenga en cuenta que el primer parámetro siempre es el "origen" y el segundo el "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.
Tenga en cuenta que el primer parámetro siempre es el "origen" y el segundo el "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 direcotorio a sincronizar, para sincronizar el contenido.
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 [https://linux.die.net/man/1/rsync documentación rsync]
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 [https://linux.die.net/man/1/rsync documentación rsync]

Revisión del 19:39 27 feb 2024

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. De izquierda a derecha, según marcan las flechas rojas, debe ingresar el nombre del servidor de acceso(leftraru.nlhpc.cl), su nombre de usuario, contraseña, puerto (22) y pulsar conexión rápida. En el panel de la izquierda tendrá sus carpetas y archivos locales y en el panel de la derecha los de su cuenta en el clúster. En ese momento puede arrastrar y soltar archivos y carpetas para que se realice la copia, tanto en un sentido como en el otro.

Login filezilla.png

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.

Por ejemplo, para copiar un archivo desde su máquina personal hacia el clúster, puede ejecutar:

scp ruta/a/su/archivo user@leftraru.nlhpc.cl:~/direcotorio/remoto/destino/

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

scp user@leftraru.nlhpc.cl:~/direcotorio/remoto/mi-archivo ~/carpeta/local/

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 ~/carpeta/local/ user@leftraru.nlhpc.cl:~/directorio/remoto 

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

scp -r user@leftraru.nlhpc.cl:~/directorio/remoto ~/carpeta/local/

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 -avzh  /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 -avzh usuario@leftraru.nlhpc.cl:/directorio_remote/ /directorio_local/

Tenga en cuenta que el primer parámetro siempre es el "origen" y el segundo el "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 slims
#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