Diferencia entre revisiones de «Tutorial de acceso a archivos»

De NLHPC
Línea 10: Línea 10:
== Acceso a los archivos usuario desde Linux/Mac ==
== Acceso a los archivos usuario desde Linux/Mac ==
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í: [https://filezilla-project.org/download.php?type=client descarga 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í: [https://filezilla-project.org/download.php?type=client descarga fileZilla]
=== scp ===
El comando <code>scp</code> permite copiar archivos desde su máquina personal a su carpeta personal en el cluster y viceversa.
Por ejemplo, para copiar un archivo '''desde''' su máquina personal '''hacia''' leftraru, puede ejecutar:
scp ruta/a/su/archivo user@leftraru:~/direcotorio/remoto/destino/
Para copiar un archivo '''desde''' leftraru '''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 <code>-r</code>.
Para copiar un directorio '''desde''' su coputadora local '''hacia''' leftraru (mi directorio -> leftraru):
scp -r ~/carpeta/local/ user@leftraru.nlhpc.cl:~/directorio/remoto
Para copiar un directorio '''desde''' leftraru '''hacia''' su computadora local (leftraru -> mi directorio):
scp -r user@leftraru.nlhpc.cl:~/directorio/remoto ~/carpeta/local/
'''Los comandos <code>scp</code> indicados aquí se ejecutan en su computadora local.'''


=== rsync ===
=== rsync ===
Adicionalmente, puede usarse "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, sin copiar cada vez el contenido.


Por ejemplo, si quiere sincronizar el contenido de la "carpeta_local" con la "carpeta_remota" en la raíz de su "home" en Leftraru, el comando a usar podría ser este (cambiando los dos sitios donde aparece "usuario" por su nombre de usuario del sistema):
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.
 
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:
 
rsync -avzh  /directorio_local/ usuario@leftraru.nlhpc.cl:/directorio_remote/


  rsync -avzh  /carpeta_local/ usuario@leftraru.nlhpc.cl:/carpeta_remota/
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 Leftraru a su máquina local):


  rsync -avzh usuario@leftraru.nlhpc.cl:/carpeta_remota/ /carpeta_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.
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 de la carpeta para que sincronice el contenido de las dos carpetas. De no ser así, rsync entiende que es la carpeta en sí la que tiene que sincronizarse, no su contenido. Es decir, que si en el primer ejemplo se omitiera la barra en "carpeta_local", dicha carpeta sería copiada dentro de "carpeta_remota", a no ser que ya existiera en "carpeta_remota" una carpeta llamada "carpeta_local", en cuyo caso se sincronizaría. La regla general es poner siempre barras al final de los nombres de carpeta a sincronizar (para que así se sincronice su 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 direcotorio 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 14:08 16 ago 2023

Acceso a los archivos usuario desde Windows

Desde Windows, se recomienda usar el programa FileZilla para poder copiar, mover y borrar archivos de Leftraru.

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 (leftraru.nlhpc.cl), su nombre de usuario, contraseña, puerto (22) y pulsar conexión rápida. Entonces en el panel de la izquierda tendrá sus carpetas y archivos locales y en el de la derecha los de su usuario en Leftraru. 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

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 cluster y viceversa.

Por ejemplo, para copiar un archivo desde su máquina personal hacia leftraru, puede ejecutar:

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

Para copiar un archivo desde leftraru 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 leftraru (mi directorio -> leftraru):

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

Para copiar un directorio desde leftraru 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, sin copiar cada vez el contenido.

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:

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):

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 direcotorio 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, 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

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