Guía para el acceso por SSH y comandos básicos con servidores Linux

  • Por
Esta es una lista de comandos de Linux que vengo usando habitualmente, para el acceso por SSH a un servidor web y la realización de pequeñas tareas de administración.

No soy un administrador de sistemas, ni mucho menos... sin embargo en el día a día toda semana me toca entrar en diversos servidores y realizar distintos tipos de operativas para su gestión. Generalmente me limito a hacer tareas sencillas y pido ayuda a administradores de sistemas de verdad para que realicen su trabajo en la instalación de servidores y la seguridad.

No obstante, es muy importante conocer los comandos más básicos para poder acceder a un servidor y hacer el deploy de aplicaciones, o estar atento de la marcha de diversos servicios, reiniciarlos, etc. Dicho esto, aclaro que los comandos que vamos a ver son sencillos y útiles para las tareas más básicas que un desarrollador puede realizar.

También hay que avisar que suelo usar servidores con Debian o Ubuntu, que es una distribución derivada y por lo tanto es muy similar.

Acceso a un servidor por SSH

Comenzaremos viendo el acceso a un servidor por SSH, un comando que te conecta con el servidor remoto y te permite trabajar con él desde la línea de comandos.

El comando es "ssh" y sigue de la dirección IP, o dominio, del servidor que deseas acceder.

ssh dominio.example.com

Lo que ocurre con este comando a secas es que te conecta con el nombre de usuario que tienes en tu máquina local, por lo que generalmente necesitas indicarle un nombre de usuario en concreto:

ssh root@0.0.0.1

El usuario puede ser "root" o bien cualquier otro.

Una vez dentro del servidor puedes escalar tu usuario a root con:

sudo su

Muchos comandos como los que veremos a continuación para el mantenimiento del servidor, necesitan que estés logueado con permisos de "root".

Mantenimiento del servidor

Ahora vamos a ver algunos comandos esenciales para mantener el servidor al día.

Si administras o usas un servidor, una de las cosas más importantes que debes hacer es mantenerlo actualizado. Muchas de los updates que se publican en el software libre de tu servidor (ya sea el propio sistema operativo o los programas que tengas instalados) son muchas veces actualizaciones de seguridad, por lo que es importante instalarlas todas.

Cuando entras en el servidor generalmente te informa sobre las actualizaciones disponibles, y cuántas de ellas son relativas a la seguridad:

Actualizar los programas

En Ubuntu o Debian se usa el comando "apt-get" para instalar las actualizaciones. Generalmente haces lo siguiente primero:

apt-get update

Con eso consigues actualizar los repositorios, para que tu servidor sepa realmente lo que tiene que descargarse de nuevo. Seguidamente ejecutas el comando:

apt-get upgrade

Este segundo comando sirve para instalar las actualizaciones disponibles para tu sistema, tanto el propio sistema operativo como los programas que tengas instalados mediante los repositorios.

Nota: apt-get funciona para las distribuciones basadas en Debian (Ubuntu, Mint, el propio Debian…) otras distros como CentOS usan el comando "yum". Supongo que habrá más gestores de paquetes pero no los he usado.

A veces, a pesar de hacer un apt-upgrade se quedan algunos paquetes sin instalar. Entonces usas:

sudo apt-get dist-upgrade

Instalar nuevos programas vía repositorios

En Linux es importante instalar los programas vía los repositorios del propio sistema, esto te asegura que te enteres cuando haya actualizaciones, y éstas se puedan instalar de manera sencilla.

Es normal que cuando entras en un servidor por primera vez no dispongas de algunos comandos básicos que sueles usar, como el que lanza el editor Vim, o Nano, Git, etc. En ese caso debes simplemente instalar estos programas usando los repositorios, con el mismo apt-get (o el gestor de paquetes que se use en tu sistema).

Por ejemplo, instalar vim se consigue con:

apt-get vim

Apagados o reinicios

A veces necesitas reiniciar la máquina, o apagarla. También es sencillo via ssh.

Reinicia la máquina. Realiza el apagado y arranca de nuevo la máquina. Importante porque algunas actualizaciones requieren el reinicio del servidor.

reboot

Ojo con el comando shutdown, que te puede apagar el servidor y no te lo vuelve a arrancar. Quizás tengas que entrar en el manager de tu servidor, en la página web del proveedor donde lo gestiones, para volverlo a arrancar

shutdown -h now

Esta es otra alternativa para reinicio de la máquina. Como un reboot.

shutdown -r now

Cuando se reinicia la máquina generalmente se saldrá de tu conexión ssh y tendrás que volver a conectarte pasado un minuto o dos, usando el comando ssh de nuevo.

Mantenimiento de servicios habituales

Muchas de las veces que ocurre un problema en el servidor se soluciona reiniciando los servicios, ya sea Apache, MySQL, Nginx. Obviamente, si algo más grave está ocurriendo ésto no te salvará, pero afortunadamente un reinicio de los servicios es suficiente.

Servicio Nginx

Si usas Nginx puedes reiniciar el servicio con:

systemctl restart nginx
Nota: Recuerda usar "sudo systemctl start nginx" o bien asegurarte de ser root o haber escalado a superusuario. Asi mismo, para reiniciar también podrías hacer primero un comando stop y luego uno start.

Para ver el status del servidor:

systemctl status nginx

Si eso no te funciona, como alternativa prueba:

service nginx restart

Servicio de Apache

Si usas Apache, entonces podrás reiniciar el servicio con este comando: (recuerda usar sudo o ser superusuario).

/etc/init.d/apache2 restart

Otra alternativa que podría servirte es:

service apache2 restart

De la misma manera, puedes hacer primero un "stop" y luego un "start", que sería el equivalente a un "restart".

Servicio MySQL

Otro de los servicios que se puede trabar y hacer que tu web funcione de repente muy lenta es MySQL. En estos casos también un reinicio suele ser "mano de santo".

/etc/init.d/mysqld restart

Como alternativa:

service mysqld start

Conclusión

Con esto acabamos con la lista básica de comandos para acceso a un servidor y su mantenimiento, para las acciones más sencillas que puedas llegar a necesitar. Haremos otras recopilaciones de comandos en el futuro que estamos seguros que te resultarán también de mucha utilidad. Puedes consultar todo en el Manual de Introducción a Linux.