Diferencia entre revisiones de «Tutorial de acceso a archivos»
(No se muestran 11 ediciones intermedias del mismo usuario) | |||
Línea 2: | Línea 2: | ||
== Acceso a los archivos usuario desde Windows == | == Acceso a los archivos usuario desde Windows == | ||
Desde Windows, se recomienda usar el programa [https://filezilla-project.org/ FileZilla] para poder copiar, mover y borrar archivos | Desde Windows, se recomienda usar el programa [https://filezilla-project.org/ 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 [https://filezilla-project.org/download.php?platform=win64 (enlace descarga)], debe iniciarlo y completar los siguientes datos según se muestra en la imagen. | Una vez descargado e instalado el programa de la web [https://filezilla-project.org/download.php?platform=win64 (enlace descarga)], debe iniciarlo y completar los siguientes datos según se muestra en la imagen.: | ||
[[Archivo: | * 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. | |||
[[Archivo:Filezilla-dbowman.png|no]] | |||
=== 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 == | == Acceso a los archivos usuario desde Linux/Mac == | ||
Línea 16: | Línea 31: | ||
=== scp === | === scp === | ||
El comando <code>scp</code> permite copiar archivos desde su máquina personal a su carpeta personal en el | El comando <code>scp</code> 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 <code>-P 4603</code> | |||
* Ruta de origen: puede ser un directorio local como <code>~/Descargas</code> o remoto como <code>dbowman@leftraru.nlhpc.cl:~/Scripts/</code> | |||
* Ruta de destino: puede ser un directorio local como <code>~/Descargas</code> o remoto como <code>dbowman@leftraru.nlhpc.cl:~/Scripts/</code> | |||
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 <code>usuario@host.remoto:/ruta/a/directorio</code>. | |||
Por ejemplo, | 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 | scp -P 4603 /home/dave/mis_archivos/archivo dbowman@leftraru.nlhpc.cl:/home/dbowman/direcotorio/remoto/destino/ | ||
Para copiar un archivo '''desde''' | Para copiar un archivo '''desde''' el clúster '''hacia''' su computadora local puede ejecutar en su computadora: | ||
scp | 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 <code>-r</code>. | Si desea copiar directorios, debe utilizar el parámetro <code>-r</code>. | ||
Para copiar un directorio '''desde''' su coputadora local '''hacia''' | Para copiar un directorio '''desde''' su coputadora local '''hacia''' el clúster (mi directorio -> leftraru): | ||
scp -r | scp -r -P 4603 /home/dave/mi_directorio dbowman@leftraru.nlhpc.cl:/home/dbowman/ | ||
Para copiar un directorio '''desde''' | Para copiar un directorio '''desde''' el clúster '''hacia''' su computadora local (leftraru -> mi directorio): | ||
scp -r | scp -r -P 4603 dbowman@leftraru.nlhpc.cl:/home/dbowman/mi_directorio /home/dave/mis_descargas/ | ||
'''Los comandos <code>scp</code> indicados aquí se ejecutan en su computadora local.''' | '''Los comandos <code>scp</code> indicados aquí se ejecutan en su computadora local.''' | ||
Línea 40: | Línea 60: | ||
=== 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, | 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 | 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 - | 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 | En caso de querer realizar la sincronización a la inversa (desde el clúster a su máquina local): | ||
rsync - | rsync -avz -e "ssh -p 4603" usuario@leftraru.nlhpc.cl:/directorio_remote/ /directorio_local/ | ||
Tenga en cuenta que el | 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 | 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] | ||
Línea 99: | Línea 119: | ||
#!/bin/bash | #!/bin/bash | ||
#SBATCH -J wgetDownload | #SBATCH -J wgetDownload | ||
#SBATCH -p | #SBATCH -p general | ||
#SBATCH -c 1 | #SBATCH -c 1 | ||
#SBATCH -n 1 | #SBATCH -n 1 | ||
Línea 110: | Línea 130: | ||
wget -c --user USER --password PASSWORD URL | wget -c --user USER --password PASSWORD URL | ||
</pre> | </pre> | ||
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. |
Revisión actual - 14:07 20 nov 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.:
- 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.
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 comodbowman@leftraru.nlhpc.cl:~/Scripts/
- Ruta de destino: puede ser un directorio local como
~/Descargas
o remoto comodbowman@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.