User Tools

Site Tools


proyecto:acceso_al_servidor

This is an old revision of the document!


Acceso al Servidor

Detalles del servidor

Cada grupo tiene su propia máquina virtual. Los detalles son:

hostname: cc3201.dcc.uchile.cl
usuario: cc3201
port: 3XX

Donde XX es el número del grupo. El grupo 7, por ejemplo, usa el puerto 307 y el grupo 13 usa el 313.

La máquina trae Debian 13 con Postgres 17 ya instalado, y nada más. Su cuenta cc3201 tiene sudo (privilegios administrativos), así que la idea es que, con estas instrucciones, ustedes puedan partir desde cero: configurar Postgres, bajar datos, diseñar el esquema relacional, crear tablas, cargar los datos, escribir consultas, armar índices y vistas, etc. El resultado final será una aplicación web.

Las páginas están pensadas para seguirse en este orden:

  1. Esta página (entrar a la máquina y subir archivos).
  2. Configurar Postgres (crear su usuario y su esquema).
  3. Conexión externa (solo cuando necesiten conectarse desde su notebook o desde la aplicación).

Algunas palabras que aparecen en estas páginas:

Término Qué es
máquina virtual (VM) Un computador simulado dentro de un servidor del DCC. Cada grupo tiene uno propio, con Linux, donde puede instalar y configurar lo que necesite.
terminal La ventana donde se escriben comandos. En Linux y Mac se llama Terminal; en Windows, PowerShell.
SSH El programa (y protocolo) para entrar a otra máquina y escribir comandos como si se tuviera su teclado enfrente.
puerto Un número que identifica a qué programa va dirigida una conexión. cc3201.dcc.uchile.cl usa un puerto distinto para cada máquina (3XX), y así sabe a cuál mandarlos.
scp Copia archivos entre su computador y el servidor, usando la misma conexión de SSH.
sudo Ejecuta un comando como administrador (root). Se usa para instalar programas o editar archivos del sistema.
apt-get El instalador de programas de Debian. sudo apt-get install <programa> baja e instala un programa.

Contraseña

Cada grupo tendrá su propia contraseña que será distribuida por correo. Es la misma para ssh, scp y sudo.

Acceso por SSH

El acceso por SSH es parecido a lo que hacen en los labs; lo que cambia es el puerto.

En una terminal (bash en Linux o Mac, o PowerShell en Windows 10/11, que ya trae ssh), para entrar a la máquina del grupo 13, por ejemplo, hay que poner:

ssh -p 313 cc3201@cc3201.dcc.uchile.cl

La primera vez que se conecten, ssh va a preguntar si confían en el servidor:

The authenticity of host '[cc3201.dcc.uchile.cl]:313' can't be established.
ED25519 key fingerprint is SHA256:...
Are you sure you want to continue connecting (yes/no/[fingerprint])?

Hay que escribir yes (la palabra completa) y apretar Enter. Después pide la contraseña. Al escribirla no aparece nada en pantalla, ni siquiera asteriscos; es normal. Si entraron bien, la línea de comandos cambia a algo como cc3201@cc3201-13:~$. Para salir de la máquina, exit.

Si prefieren una interfaz gráfica en Windows, pueden usar PuTTY con el host cc3201.dcc.uchile.cl y el puerto 3XX.

Transferencia de datos

Para transferir archivos desde la terminal hay que usar scp. Ojo que scp usa -P (mayúscula) para el puerto, a diferencia de ssh, que usa -p. Estos comandos se ejecutan en su notebook, no dentro del servidor. Para copiar un archivo local al servidor:

scp -P 313 local.txt cc3201@cc3201.dcc.uchile.cl:/home/cc3201/

O al revés, para copiar un archivo desde el servidor a una carpeta local:

scp -P 313 cc3201@cc3201.dcc.uchile.cl:/home/cc3201/remote.txt /local/carpeta/

En Windows también se puede usar un cliente gráfico como WinSCP, con protocolo SFTP, el host cc3201.dcc.uchile.cl, el puerto 3XX, el usuario cc3201 y la misma contraseña de SSH.

Prueba con sudo

Pueden usar sudo para ejecutar comandos como administrador. Para probarlo:

sudo echo "hello"

La primera vez pide la contraseña (la misma de SSH) y después debería imprimir hello.

Si en cambio aparece una advertencia como esta:

sudo: unable to resolve host cc3201-XX

hay que editar el archivo /etc/hosts:

sudo vim /etc/hosts

… y agregar el nombre del servidor al IP de localhost así:

127.0.0.1    localhost cc3201-XX

… donde XX es el número del grupo. En vim, hay que presionar i para empezar a editar el archivo; luego, para guardar y salir, hay que presionar Esc, y después poner :wq [enter]. (Si se perdieron dentro de vim, Esc y luego :q! [enter] sale sin guardar.)

Bajar datos de la Web

Otra opción es bajar archivos directamente de la Web al servidor usando wget. La máquina no lo trae, así que primero hay que instalarlo:

sudo apt-get install wget

apt-get pregunta Do you want to continue? [Y/n]; hay que responder Y y Enter. Después se pueden bajar archivos de la Web:

wget https://raw.githubusercontent.com/<usuario>/<repositorio>/main/datos.csv

Así se pueden subir datos a algún sitio web (como GitHub) y luego bajarlos al servidor, pero hay que usar el enlace directo al archivo crudo. En GitHub es el que aparece al apretar el botón Raw. Los enlaces para compartir de Google Drive o Dropbox apuntan a una página HTML y no al archivo, así que wget baja esa página.

(Otra opción sería instalar un cliente git en el servidor, con sudo apt-get install git, hacer un commit/push localmente y un pull en el servidor.)

Para personas curiosas: cómo es la máquina por dentro

No hace falta saber esto para el proyecto. Estos son los datos de una de las máquinas del curso; las de ustedes deberían ser iguales, y los pueden revisar con los comandos de la última columna.

Qué Valor Comando para verlo
Sistema operativo Debian GNU/Linux 13 (trixie), kernel 6.12, 64 bits cat /etc/os-release, uname -rm
Virtualización Máquina virtual Xen, dentro de un servidor del DCC systemd-detect-virt
Procesador 1 núcleo de un Intel Xeon Gold 6148 (2,4 GHz) nproc, lscpu
Memoria RAM 700 MB, más 1 GB de swap (memoria de respaldo en disco, mucho más lenta) free -h
Disco 10 GB en total: 9 GB para el sistema y sus datos (unos 7 GB libres al partir) y 1 GB de swap df -h /, lsblk
Postgres 17.11 psql –version
Red interna Una dirección privada 10.0.220.x; desde internet se llega solo por cc3201.dcc.uchile.cl ip -br a
Zona horaria UTC (3 o 4 horas más que en Chile, según la época del año) timedatectl

Algunas consecuencias prácticas:

  • Con 700 MB de RAM, las consultas sobre tablas grandes o los JOIN sin índices pueden ser lentos, y ahí se nota lo que se ve en clases sobre índices y planes de consulta.
  • Si sus datos pesan más de un par de GB, no van a caber junto con los índices. Conviene revisar el tamaño antes de subirlos (du -h archivo.csv en su computador).
  • Como la máquina está en UTC, now() en Postgres devuelve la hora UTC. Para ver la hora de Chile: SELECT now() AT TIME ZONE 'America/Santiago';.
  • La máquina no trae Python. Si lo necesitan, sudo apt-get install python3.
proyecto/acceso_al_servidor.1790361072.txt.gz · Last modified: by semorale