Guía práctica de terminal para servidores y VPS

Esta sección recopila comandos Linux usados en servidores reales, VPS, despliegues web y entornos con Nginx, Gunicorn, Django y virtualización.
Es una guía práctica, pensada para consulta rápida.

Nota:
Los valores entre < > representan datos que debes adaptar a tu entorno
(usuario, IP, rutas, dominio, nombre del proyecto, etc.).

📤 SUBIR ARCHIVOS DESDE WINDOWS (CMD / PuTTY) A UNA VPS

Usando pscp (Windows → Linux)

pscp -r <RUTA_LOCAL_DEL_PROYECTO> <USUARIO>@<IP_SERVIDOR>:<RUTA_DESTINO_EN_SERVIDOR>

Ejemplo genérico:

pscp -r "C:\ruta\de\tu\web" appuser@192.0.2.10:/var/www/mi_aplicacion/

🔄 REINICIAR Y VER ESTADO DE NGINX

Reiniciar Nginx:

sudo systemctl restart nginx

Ver estado del servicio:

sudo systemctl status nginx

Ver logs de error en tiempo real:

sudo tail -f /var/log/nginx/error.log

📦 SUBIR O COPIAR ARCHIVOS CON rsync (RECOMENDADO)

rsync permite reanudar transferencias si se corta la conexión.

Ir al directorio donde está la carpeta a copiar:

cd /ruta/a/tu/proyecto/frontend

Copiar carpeta completa:

rsync -avP carpeta_a_copiar/ usuario@IP_VM:~/carpeta/de/destino/

Ejemplo ficticio:

rsync -avP frontend/ deploy@192.0.2.10:/var/www/mi_aplicacion/

Opciones usadas:

  • a → preserva permisos y estructura
  • v → muestra detalles
  • P → progreso y reanudación

Copiar un solo archivo:

rsync -avP ~/ruta/archivo.sql <USUARIO>@<IP_SERVIDOR>:~/backups/

📋 GESTIÓN DE USUARIOS, PERMISOS Y SERVICIOS

Django + Gunicorn + Nginx

👤 Crear usuario

sudo adduser <USUARIO_APP>

Ejemplo:

sudo adduser appuser

➕ Añadir a sudo

sudo usermod -aG sudo appuser

🔁 Cambiar de usuario

su - appuser

🔍 Ver usuario actual

whoami

📁 PERMISOS Y ARCHIVOS ESTÁTICOS

Ver permisos:

ls -la /home/<USUARIO_APP>/<PROYECTO_DJANGO>/staticfiles

Cambiar propietario:

sudo chown -R <USUARIO_APP>:<USUARIO_APP> /home/<USUARIO_APP>/<PROYECTO_DJANGO>/staticfiles

Borrar staticfiles (limpio):

rm -rf /home/<USUARIO_APP>/<PROYECTO_DJANGO>/staticfiles/*

⚠️ Este comando elimina archivos de forma permanente. Verifica la ruta antes de ejecutarlo.

Ejecutar collectstatic:

python manage.py collectstatic

🚀 GUNICORN

Ver procesos:

ps aux | grep gunicorn

Matar proceso manualmente:

sudo kill -9 PID

Crear servicio systemd

sudo nano /etc/systemd/system/gunicorn.service
[Unit]

Description=gunicorn daemon for Django project

After=network.target

[Service]

User=<USUARIO_APP>
Group=<USUARIO_APP>
WorkingDirectory=/home/<USUARIO_APP>/<PROYECTO_DJANGO>
ExecStart=/home/<USUARIO_APP>/env/bin/gunicorn \
  --workers 3 \
  --bind unix:/home/<USUARIO_APP>/<PROYECTO_DJANGO>/gunicorn.sock \
  <PROYECTO_DJANGO>.wsgi:application

[Install]

WantedBy=multi-user.target

Activar servicio:

sudo systemctl daemon-reload

sudo systemctl start gunicorn

sudo systemctl enable gunicorn

Ver estado y logs:

sudo systemctl status gunicorn

journalctl -u gunicorn -f


🌐 CONFIGURACIÓN BÁSICA DE NGINX

sudo nano /etc/nginx/sites-available/<NOMBRE_DEL_SITIO>
server {
    listen 80;
    server_name <DOMINIO_O_IP>;

    location /static/ {
        root /home/<USUARIO_APP>/<PROYECTO_DJANGO>;
    }

    location /media/ {
        root /home/<USUARIO_APP>/<PROYECTO_DJANGO>;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/home/<USUARIO_APP>/<PROYECTO_DJANGO>/gunicorn.sock;
    }
}

Activar sitio:

sudo ln -s /etc/nginx/sites-available/<NOMBRE_DEL_SITIO> \
           /etc/nginx/sites-enabled/

sudo nginx -t

sudo systemctl restart nginx


👥 USUARIOS Y GRUPOS

Ver usuarios:

cut -d: -f1 /etc/passwd

compgen -u

Ver grupos:

cut -d: -f1 /etc/group

compgen -g

Grupos de un usuario:

groups <USUARIO>

Ver miembros de un grupo:

getent group <GRUPO>

Detalles completos:

id <USUARIO>

🖥️ HARDWARE, CPU Y VIRTUALIZACIÓN (PROXMOX)

CPU y virtualización:

lscpu

RAM:

free -h

Discos:

lsblk
df -h

UEFI o BIOS:

[ -d /sys/firmware/efi ] && echo "UEFI" || echo "Legacy BIOS"

Hardware completo:

sudo lshw -short
sudo apt install lshw

📌 Requisitos recomendados para Proxmox

RecursoMínimoRecomendado
CPU64-bit + VT-x4 núcleos
RAM2 GB16 GB+
Disco16 GBSSD 100 GB+
RedEthernetGigabit

Conclusión

Estos comandos cubren tareas comunes en la administración de servidores VPS:
despliegue, permisos, servicios, diagnóstico y virtualización.
Úsalos como referencia y adáptalos siempre a tu entorno.