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.
Contenido
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.
Comando df
Muestra un resumen del espacio ocupado en el disco
df -h
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.
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
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
Una página de consulta de comandos
Esta página te puede venir ideal para tener una chuleta de comandos: