Los comandos SSH más usados para tu hosting

En muchas ocasiones nos vemos obligados a obtener más información de la que el propio dashboard de plesk te da en el hosting, eso, o simplemente tiene que entrar de alguna manera para reparar alguna cosa.

El uso de la terminal se hace prácticamente imprescindible para la administración de tu propio server, y aunque tu servicio técnico te puede dar apoyo es siempre muy recomendable tener a mano los comandos más utilizados.

Terminal

Comando clear

Para limpiar la pantalla negra que estamos usando
Ejemplo:

clear

Borra todo lo que había en la pantalla.

Comando more

Muestra el contenido de un archivo en la pantalla. Y al hacer enter te muestra la siguiente línea.
Ejemplo:

more /home/resultado.txt

Te mostrará el contenido del archivo resultado.txt que está dentro del directorio home

Comando q

Para terminar un comando en ejecución

Comando exit

Sale de la máquina remota donde estás conectado.

exit

Comando pwd

Ubicación de la ruta actual.

pwd

Archivos

Comando cp

Comando utilizado para copiar un archivo
Hace una copia de filename.ext desde el directorio /home/path/ al directorio /home/newpath/ con el nombre newfilename.ext.

cp /home/path/filename.ext /home/newpath/newfilename.ext

Hace una copia de todos los archivos y directorios de /home/path/ y los pone en el directorio de /home/newpath/.

cp -R /home/path/* /home/newpath/

Comando mv

Comando utilizado para mover un archivo, la utilización es la misma que con con cp (ver arriba).

Comando rm

Comando utilizado para borrar archivos.

Borra filename.ext, pregunta por confirmación antes de borrar.

rm filename.ext

Borra filename.ext sin preguntar por confirmación.

rm -f filename.ext

Otro ejemplo: Borra la carpeta en el directorio, todos los archivos y los subdirectorios dentro, sin confirmación. (Sea muy cuidadoso con este comando).

rm -rf /home/directory/

Comando vi

Editor de texto. Abre filename.ext  en el editor de texto vi.

vi filename.ext

Comando cat

Utilizado para imprimir en pantalla.
Imprime el contenido del archivo filename en pantalla:

cat filename

|more reparte el contenido del archivo en múltiples páginas (deslícese entre las páginas presionando la barra espaciadora, salga presionando la letra q).

cat filename |more

Comando tail

Mismo principio que con cat pero solo imprime el final del archivo. Utilizado muy a menudo para ver los últimos eventos que se muestran en un archivo de registro.

Para vigilar el archivo continuamente, incluso cuando se está actualizando:

tail -f /path/filename.txt

Para imprimir las últimas 100 líneas de un archivo:

tail -100 /path/filename.txt

Comando grep

Busca una cadena dentro de un archivo.
Imprime en pantalla la instancia en la cual se ha encontrado la cadena string en el archivo filename:

grep string filename

Imprime en pantalla las instancias en las que se ha encontrado la cadena string en la carpeta actual, así como en los archivos de sus subcarpetas:

grep -r string *

Comando find

Búsqueda de archivos.
Busca en /path/to/search por un archivo de nombre filename:

find /path/to/search/ -name filename

Encuentra todos los archivos llamados filename en cualquier lugar de su servidor:

find / -name filename

Encuentra todos los archivos que tienen ‘string’ en su nombre de archivo:

find /path/to/search -name "*string*"

Directorios

Comando cd

Cambia el directorio a un directorio en particular.
Si el comando es ejecutado sin argumentos,  nos llevará al directorio principal del usuario:

cd

Le lleva de regreso a su directorio principal (el directorio en el que aparece cuando recién inicia sesión en su servidor):

cd ~

:
Le lleva al directorio /usr/local/apache/:

cd /usr/local/apache

Lo mueve de regreso hacia el último directorio en el que estuvo:

cd -

Lo mueve un nivel hacia arriba en el árbol del directorio.

cd ..

Comando ls

Lista todos los archivos/directorios en el directorio actual.
Muestra todos los archivos/directorios en el directorio actual, incluidos los archivos ocultos:

ls -a

Muestra una lista ordenada del directorio actual:

ls -l

Muestra una lista ordenada del directorio actual, incluyendo los archivos ocultos:

ls -al

Comando mkdir

Crea un nuevo directorio.

mkdir

Comando rmdir

Elimina carpeta.

rmdir

Disco

Comando du

Muestra la utilización del disco del directorio actual.
Muestra la utilización del disco, por carpeta, en el directorio actual, en un formato humanamente legible.

du -h

No despliega el tamaño por carpeta, solo muestra el total del espacio utilizado, en un formato humanamente legible.

du -sh

Un ejemplo de un comando combinado:

du -la * |sort -n|tail -15
  • du -la * : Regresa el tamaño de todos los archivos en el directorio dado.
  • sort -n : Ordena los resultados por valor numérico.
  • tail -15 : Imprime solo los últimos 15 resultados, lo que significa los 15 archivos más grandes de un directorio dado.

Memoria

Comando top

Muestra los procesos que se están ejecutando así como su utilización de recursos en una tabla, en tiempo real.

Shift + M para ordenar por utilización de memoria.

Shift + P para ordenar por utilización del CPU. (Presione ctrl + c para salir).

Seguridad y red

Comando last

Muestra las últimas conexiones al servidor y cuándo fueron hechas las mismas.

last -20 : Muestra solo los últimos 20 inicios de sesión.

last -20 -a : Muestra solo los últimos 20 inicios de sesión, con el nombre del equipo desde los cuales fueron hechas las conexiones.

last -20 -ai : La misma que la anterior, pero muestra la dirección IP en lugar de mostrar el nombre del equipo.

Comando w

Muestra quién está conectado actualmente y desde dónde han iniciado sesión.

Comando who

Parecido a w pero  muestra solo al usuario, hora de la conexión y el nombre del equipo desde el cual se realizó la conexión.

Comando netstat

Muestra todas las conexiones de red actuales.

netstat -an : Muestra todas las conexiones al servidor, las direcciones IP de origen y destino, así como los puertos.

netstat -rn : Muestra la tabla de ruteo de todas las direcciones IP ligadas al servidor.

Comando ps

Enlista los procesos que se ejecutan y sus PID (ID del proceso).

ps U username : Muestra los procesos que se ejecutan por el usuario username.

ps aux : Muestra todos los procesos del sistema que se ejecutan.

ps aux –forest : Muestra y ordena todos los procesos del sistema que se ejecutan.

Comando kill

Utilizado para terminar un proceso.

kill -9 PID : Donde PID se refiere al número de ID del proceso.

Permisos

(Nota: Usted debe o bien ser el propietario del archivo/directorio, o haber iniciado como usuario root antes de poder ejecutar cualquiera de estos comandos).

Comando chown

Utilizado para cambiar la propiedad de un archivo (dos variables: USUARIO – GRUPO)

chown root filename.ext : Cambia el propietario del archivo filename.ext al usuario root.

chown root.apache filename.ext : Cambia el propietario al usuario root y grupo a apache.

chown -R root /home/folder : Cambia el propietario de todo lo incluido (carpetas y archivos también) en el directorio /home/folder al usuario root.

Comando chmod

Utilizado para cambiar los permisos del archivo.

chmod 755 filename.ext : Cambia los permisos de archivo para  filename.ext a 755.

 

Compresión de archivos

Comando tar

Usado en combinación con argumentos para crear y extraer archivos .tar.gz y .tar.

tar -vxfz filename.tar.gz : Descomprime y extrae los archivos contenidos en filename.tar.gz

tar -vxf filename.tar : Descomprime y extrae los archivos contenidos en filename.tar

tar -vcf archive.tar directory/ : Toma todos los archivos y carpetas en /directory/ y los archiva en  archive.tar

Comando zip y unzip

zip archivo.zip /home/usuario/public_html/directorio : Comprimir directorio
unzip archivo.zip : Descomprimir archivo.zip
unzip -v archivo.zip : Ver contenido de archivo.zip

Comando gz

Descompresión de archivos gz

gzip -d wp6_archivo.gz  : Descomprimir archivo.gz

Apache

Comando httpd

httpd -v : Imprime la fecha de creación y número de versión del servidor Apache.

httpd -l : Listas compiladas en módulos Apache.

service httpd restart : Reinicia el servidor web Apache.

MySQL

Comando mysql

mysqladmin processlist : Muestra las conexiones activas de MySQL así como las consultas.

mysqladmin drop databasename : Descarta (borra) la base de datos llamada databasename.

mysqladmin -u root -p create databasename : Crea una base de datos llamada databasename.

mysql -u username -p password databasename < databasefile.sql : Restaura una base de datos MySQL en databasename desde databasefile.sql.

mysqldump -u username -p password databasename > databasefile.sql : Lleva a cabo un dump de MySQL de la base de datos llamada databasename y lo envía a databasefile.sql.

Otros comandos útiles

Comando ln

Crea un enlace entre archivos, directorios y URLs.

ln -s /usr/local/apache/conf/httpd.conf /etc/httpd.conf : Ahora puede editar /etc/httpd.conf en lugar de  /usr/local/apache/conf/httpd.conf.

ln -s /home/www/path domain.com : Hace que el dominio domain.com apunte hacia el directorio  /home/www/path (¡No olvide hacer otra entrada con http://www.domain.com!)

Comando touch

Crea un archivo vacío.

touch /home/path/filename.html : crea un archivo vacío llamado filename.html en el directorio /home/path (que puede luego ser editado en VI, por ejemplo).

Comando wc

Imprime el número de palabras en un archivo.

wc -l filename.ext : Imprime el número de líneas en filename.ext.

Comando wget

Para traer un archivo que está en internet
Ejemplo: wget http://alexmedina.net/backup.gz
Copia en la carpeta en que me encuentro el archivo del url.

Mantenimiento del servidor

Actualizar 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:

Instalar nuevos programas vía repositorios

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

Actualizado: En algunos servidores he observado que el servicio de MySQL se llama «mysql» y no «mysqld». Si te ocurre en tu caso puede que recibas un mensaje como «mysqld: unrecognized service». En ese caso comando en cuestión sería:

service mysql start

Lo más utilizados por mi

#espacio disco
df -h

#memoria
top

#procesos
ps -ef | grep php
ps aux | grep php
ps aux

#conexiones
netstat -an | grep :80 | sort

#eliminar cache
sync && echo 3 > /proc/sys/vm/drop_caches

#salir
ctrl + C

#hace un contador de las ips conectadas al puerto 80 (http), se puede cambiar a otro como por ejemplo el mail (25)

netstat -tn 2>/dev/null | grep «:80 » | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -nr | head

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *