Ver planes
ESEN

Comandos útiles del día a día en un VPS

· 7 min de lectura · por el equipo técnico de VPS Argentina

Una docena de comandos resuelven casi todo el trabajo cotidiano en un servidor: find para buscar y borrar, du y ncdu para ver qué ocupa lugar, tar para comprimir, rsync para copiar, systemd para que algo arranque solo y unas líneas en ~/.ssh/config para que la conexión sea instantánea. El único que pide cuidado es find con -delete: conviene correrlo primero sin borrar nada, mirar la lista y después sí.

Buscar y borrar, en dos pasos

La regla que evita el desastre: primero listar, después borrar. El mismo comando, con y sin -delete.

find /home/usuario -name "*.log" -mtime +30        # listar
find /home/usuario -name "*.log" -mtime +30 -delete # borrar
  • -name busca por nombre, -iname sin distinguir mayúsculas.
  • -mtime +30 son los modificados hace más de 30 días.
  • -size +100M filtra por tamaño.
  • -type f solo archivos, -type d solo carpetas.

Qué está ocupando el disco

du -sh /home/* | sort -h | tail -10
ncdu /home

El primero lista las diez carpetas más pesadas. ncdu es interactivo y permite recorrer el árbol: si no está instalado, apt install -y ncdu o dnf install -y ncdu.

Comprimir y copiar

tar -czf sitio-$(date +%F).tar.gz public_html
rsync -avz --progress carpeta/ root@IP:/destino/

rsync se puede interrumpir y retomar, y solo copia lo que cambió: para mover sitios grandes es siempre mejor que scp.

Optimizar imágenes desde la consola

Un sitio lento por imágenes pesadas se arregla en un comando. Con jpegoptim y optipng:

apt install -y jpegoptim optipng
find . -name "*.jpg" -exec jpegoptim --max=82 --strip-all {} \;
find . -name "*.png" -exec optipng -o2 {} \;

Hacé una copia antes: la optimización es destructiva. Y si el sitio es WordPress, conviene además servir WebP o AVIF, que pesan bastante menos.

Que algo arranque con el servidor

Los artículos viejos usan rc.local. Hoy corresponde una unidad de systemd, que además reinicia el proceso si se cae:

[Unit]
Description=Mi proceso
After=network.target
[Service]
ExecStart=/usr/bin/node /opt/app/server.js
Restart=always
User=app
[Install]
WantedBy=multi-user.target

Se guarda en /etc/systemd/system/miproceso.service y se activa con systemctl daemon-reload && systemctl enable --now miproceso.

Que el SSH conecte al instante

Si cada conexión tarda varios segundos, casi siempre es la resolución inversa o la negociación de métodos de autenticación. En tu computadora, en ~/.ssh/config:

Host *
  ServerAliveInterval 60
  ControlMaster auto
  ControlPath ~/.ssh/cm-%r@%h:%p
  ControlPersist 10m

Con eso, la segunda conexión al mismo servidor reutiliza la primera y abre al instante. Del lado del servidor, UseDNS no en sshd_config evita la espera por resolución inversa.

Preguntas frecuentes

¿Cómo borro archivos viejos sin equivocarme?

Corré el find sin -delete, revisá la lista completa y recién entonces agregá el borrado. Si son muchos, guardá la lista en un archivo antes.

Se llenó el disco y no encuentro con qué

ncdu / recorre todo y muestra el tamaño por carpeta. Los sospechosos habituales son /var/log, los respaldos y las carpetas de caché de los sitios.

¿`rsync` o `scp`?

rsync para cualquier cosa que no sea un archivo suelto: retoma, compara y muestra el progreso.

¿Por qué mi SSH tarda en conectar?

Suele ser la resolución inversa del servidor. UseDNS no en sshd_config y la reutilización de conexión del lado del cliente lo resuelven.

¿Conviene optimizar imágenes en el servidor o antes de subirlas?

Antes es mejor, porque no gasta recursos del servidor. Para un sitio que ya está en producción con miles de imágenes, el comando resuelve en minutos lo que a mano no se hace nunca.

Seguí leyendo