Cómo tmux lo ayuda a administrar su servidor Cloudways a través de SSH
Publicado: 2020-03-06
Este artículo complementa y amplía un video que he creado sobre el uso de SSH y tmux para administrar mis servidores Cloudways. En el video, puedes verme usar tmux para administrar conexiones SSH a múltiples servidores de Cloudways y usar la herramienta de línea de comandos htop para analizar la carga del servidor.
Puedes ver el video completo aquí:
Dado que hay mucho más en esta conversación que solo lo que cubrí en el video, quería escribir este artículo complementario y brindar más información sobre por qué estoy usando tmux y por qué confío en SSH para la administración del servidor.
Para darle un poco de experiencia, no soy un administrador de servidores por formación, ni siquiera un desarrollador web capacitado. Todo lo que hago es autodidacta. Para mí, aprender haciendo es mi enfoque favorito para adquirir habilidades o abordar los desafíos a los que me enfrento. Ya no soy amigo de la educación formal (dejé una maestría en seguridad informática) y en cambio creo en involucrarme con la tecnología para comprender cómo funciona.
Tenga en cuenta este enfoque mientras mira el video y lee este artículo. Como verá, he dividido el artículo en dos secciones. Cada uno podría ser un artículo muy largo o probablemente varios artículos por sí mismos, pero pensé que van bien juntos en este contexto.
- Administrar su servidor a través de SSH
- ¿Por qué debería utilizar la línea de comandos?
- Caso de uso: depuración de la carga del servidor mediante htop
- Caso de uso: uso de WP-CLI en servidores Cloudways
- ¿Por qué recomendé tmux?
Administrar su servidor a través de SSH
Una de las ventajas de utilizar Cloudways para el alojamiento es que tiene acceso de línea de comandos a sus servidores y sus aplicaciones. Si bien no es un acceso de root, puede hacer muchas cosas en la línea de comandos.
Desde mi perspectiva, es razonable que no tenga acceso de root a mis servidores Cloudways. Imagínese cómo sería el mantenimiento de 20k servidores si cada administrador de servidor instalara sus propias herramientas y paquetes. Esa es una hazaña imposible de lograr. Dicho esto, Cloudways nos da acceso a WP-CLI y muchas otras herramientas estándar. Y eso es mucho con lo que trabajar para mantener sus servidores y mantenerse informado de lo que están haciendo los servidores.
Me tomó un tiempo comprender los beneficios de administrar mis servidores a través de SSH, pero ahora no veo ninguna otra forma de manejar este asunto. Mis principales razones para ir a la línea de comandos son:
- No tengo que esperar a que se cargue una aplicación web para ver lo que quiero ver.
- El inicio de sesión se administra mediante claves SSH, por lo que no tengo que ingresar mi contraseña innecesariamente.
- Puedo mantener las sesiones SSH en ejecución y no tengo que preocuparme por iniciar y cerrar sesión.
- Tengo acceso a WP-CLI y puedo hacer cosas que no puedo hacer en el panel de control de WP Admin.
- Puedo automatizar la ejecución de tareas usando trabajos cron y scripts.
- No tengo que apartar las manos del teclado para usar el mouse y puedo mantenerlas relajadas.
Tenga en cuenta que, como requisito previo, debe tener instalado algún tipo de cliente SSH. Si está en Linux o Mac, simplemente puede usar las aplicaciones de Terminal preinstaladas. Si eres un usuario de Windows como yo, puedes instalar PuTTY o usar el Bash que viene con el Subsistema de Windows para Linux (que es lo que prefiero).
Si no tiene ganas de instalar ningún software adicional, también puede abrir un terminal SSH desde la consola de Cloudways, pero esa no es una solución que recomendaría para el uso diario. Como verá, la belleza de usar una interfaz de línea de comandos es no tener que iniciar sesión en una aplicación web como la Consola de Cloudways.
¿Por qué debería utilizar la línea de comandos?
Usar la línea de comandos se sintió muy intimidante al principio. Eso es tan cierto para la administración del servidor como para el uso de la línea de comandos en mi PC o Mac local. La mayor parte de mi conocimiento sobre la línea de comandos proviene de los tutoriales que leí en Internet o de un amigo mío que trabaja en Cisco. Todo es aprender haciendo.
Especialmente al configurar un servidor o un servicio como un servidor web o caché del lado del servidor, es fácil romper cosas. No saber lo que estaba haciendo y no tener ninguna experiencia con el uso de herramientas de línea de comandos no necesariamente me inspiró confianza para intentar administrar mis servidores a través de SSH.
Finalmente tuve resaca y descubrí los beneficios de usar la línea de comandos siguiendo tres reglas:
- Siempre dé un paso a la vez e intente comprender exactamente lo que está haciendo en este paso.
- Tenga siempre un punto de restauración o una copia de seguridad en caso de que se rompa algo.
- Pruebe siempre en un entorno seguro y nunca ejecute una herramienta de línea de comandos en un sitio web activo por primera vez.
Con esas reglas, sabía que nada podía salir mal. Creé una versión provisional de mi sitio web en vivo en Cloudways usando la funcionalidad " Clonar " y simplemente seguí su tutorial de inicio de sesión a través de SSH. Una vez que inicié sesión, comencé a jugar con WP-CLI y otras herramientas simples de administración de servidores como htop.
Si sigue un enfoque similar, debería estar en una buena posición para aprender a usar la línea de comandos de manera segura. Ayuda tener experiencia en desarrollo o TI, pero no creo que sea necesario. Simplemente piense en la línea de comandos como una forma de interactuar con su computadora, tal como lo hace con el mouse en el escritorio. Especialmente con WP-CLI , es fácil dar los primeros pasos en la línea de comandos y ver los resultados en su panel de administración de WP.
Caso de uso: depuración de la carga del servidor mediante htop
En el video, verá que estoy usando la herramienta htop para analizar el uso de recursos del servidor. htop es una herramienta estándar que le brinda información sobre lo que está sucediendo actualmente en su servidor en tiempo real. Teniendo en cuenta que los datos de monitoreo de Cloudways Platform a veces tienen ligeros retrasos, es extremadamente útil aprender más sobre el uso de htop .
Siempre que el bot de Cloudways me notifica que el uso de CPU o RAM aumenta, inicio sesión en el servidor respectivo a través de SSH y ejecuto htop. En segundos, puedo identificar el proceso y la aplicación que consume los recursos. Lo que me llevaría uno o dos minutos usando la plataforma web de Cloudways se hace en 10-20 segundos.

Así es como se ve htop en la práctica:

Luego, el proceso de depuración consiste en identificar la aplicación que consume cantidades inusuales de recursos del servidor a través de htop y examinar esa aplicación con mayor detalle. Si ve un proceso PHP de esa aplicación que ocupa la CPU o la RAM, sabe que probablemente sea algo relacionado con un complemento de WP o su tema. A menudo ocurre que los procesos programados a través de WP-Cron se han acumulado y ahora se ejecutan todos a la vez, sobrecargando así su servidor.
Si ve un proceso MySQL o MariaDB ocupando los recursos del servidor, sabe que no tiene que buscar en los complementos o el tema, sino en la base de datos. He visto que las bases de datos pierden sus índices y, por lo tanto, hacen que las consultas SQL se ejecuten extremadamente lentas. Puede llevar años identificar las fuentes del problema si no sabe si es PHP o MySQL el que causa los problemas.
Como puede imaginar, esto es solo la punta del iceberg de lo que puede hacer htop. Aquí hay una lista de ejemplos prácticos de htop que llevan mi ejemplo al siguiente nivel.
Caso de uso: uso de WP-CLI en servidores Cloudways
Saber cómo usar WP-CLI puede ser un verdadero cambio de juego para su enfoque de desarrollo diario. ¿Instalar un Vanilla WP sin mover el mouse? No hay problema. ¿Eliminar todos los transitorios con la instalación de un complemento adicional? Fácil. ¿Analizando qué ganchos ralentizan más el tiempo de carga de su sitio web? También puede hacer eso con WP-CLI.
Es realmente sorprendente que Cloudways nos brinde acceso a WP-CLI a través de la línea de comandos. Puede crear fácilmente herramientas que instalen el tema y la pila de complementos de WordPress predeterminados. O puede usar WP-CLI para descargar una copia de seguridad de la base de datos de su sitio en segundos o minutos (bueno, eso depende del tamaño de su base de datos).
Aquí está el truco: tienes que usar la línea de comandos para acceder a WP-CLI. Y, por lo tanto, debe iniciar sesión en su servidor a través de SSH para ejecutar comandos WP-CLI en sus sitios web alojados en Cloudways.
Si no hay otra razón para que se familiarice con la línea de comandos y comience a usar SSH para administrar sus servidores, WP-CLI debería ser el indicado. Déjame darte solo tres ejemplos que valdrá la pena probar:
1. Optimización y reparación de su base de datos
Como no obtenemos PhpMyAdmin en Cloudways, tener la opción de optimizar y reparar su base de datos de WordPress usando WP-CLI es útil. Al utilizar wp db optimizar y wp db repair , puede acelerar su base de datos y estabilizar sus procesos.
2. Creación de un tema hijo en cuestión de segundos
Sí, puede crear un tema hijo creando y cargando manualmente un nuevo directorio con los respectivos style.css y functions.php en wp-content / themes, pero ¿por qué molestarse si puede ejecutar un comando simple que maneja todo por usted?
No más mirar el Codex para verificar si las especificaciones cambiaron, no más inicios de sesión SFTP y transferencias de archivos. Simplemente ejecute el siguiente comando en la línea de comandos y su tema hijo estará listo para ser utilizado:
wp scaffold child-theme SLUG –parent_theme = SLUG –theme_name = TITLE –author = FULL-NAME –author_uri = URI –theme_uri = URI –activate –force
Tenga en cuenta que este comando activará el tema hijo de forma predeterminada. Si no desea hacer eso, omita “–activate –force” al final del comando.
3. Cree contenido ficticio para fines de desarrollo
Todos los desarrolladores necesitan datos para trabajar durante sus fases de desarrollo. ¿Qué sucede si no tuviera que crear y duplicar manualmente publicaciones y páginas en el panel de administración de WP? ¿Qué pasaría si WP-CLI pudiera crear cualquier cantidad de datos ficticios para usted con un simple comando?
Al ejecutar wp post generate –count = 10, puede generar diez publicaciones de demostración en segundos. La misma funcionalidad funciona para crear páginas, datos ficticios de WooCommerce e incluso le permite agregar contenido de lorem ipsum a las publicaciones.
Simplemente usando curl http://loripsum.net/api/4 | wp post generate –post_content –count = 10 creará 10 publicaciones, cada una con cuatro párrafos de texto de Lorem Ipsum.
¿Por qué recomendé tmux?
Espero que los ejemplos que he dado anteriormente sean suficientes para entusiasmarlo con probar SSH para mantener sus servidores Cloudways. Permítanme llevar este artículo un poco más lejos y hablar sobre por qué estoy usando tmux para administrar mis sesiones SSH.
En resumen, tmux le permite administrar múltiples sesiones de terminal a la vez. Es decir, cuando haces algo en la terminal mientras estás en una sesión tmux, tmux hará un seguimiento de lo que estás haciendo. Incluso si cierra accidentalmente la terminal, su sesión no se perderá. Simplemente puede volver a donde lo dejó con un comando y continuar trabajando.
tmux también le permite programar sesiones. Por ejemplo, si tiende a ejecutar los mismos comandos para configurar entornos de desarrollo una y otra vez, puede automatizar esos comandos usando tmux.
Para ser franco, no estoy seguro de si alguna vez aprenderé todo lo que tmux tiene para ofrecer, simplemente porque es mucho. Es similar a las hojas de cálculo de Google o MS Excel: todos sabemos lo poderosas que son esas herramientas, pero posiblemente usamos el 5% de sus funciones a diario. Sin embargo, sé lo suficiente para usar tmux en mi desarrollo diario de WordPress .
Como puede ver en el video, uso tmux para realizar un seguimiento de mis sesiones SSH. Eso me evita tener que iniciar sesión en mis servidores de Cloudways una y otra vez. Simplemente me vuelvo a conectar a la sesión tmux llamada "Cloudways" y sigo trabajando en mis servidores. No hay magia involucrada, pero incluso este pequeño ajuste me ahorra tiempo todos los días. Hago lo mismo con mi Raspberry Pi privado en casa (soy un nerd hogareño inteligente en mi tiempo libre).
tmux es genial porque le permite ahorrar tiempo, ser más productivo y reduce los movimientos de sus manos a lo largo del día. Si eres como yo, fácilmente te duelen las muñecas por los largos días en la PC. Incluso con un mouse ergonómico, no me desaparecería. Sin embargo, lo que funcionó fue reducir los movimientos que hacía con las manos.
Cambiar la mano derecha del teclado al mouse de vez en cuando siempre se sintió como una interrupción en el flujo. Tuve que pensar dónde poner mi mano derecha, había una ligera tensión en la muñeca y me salí del flujo de escritura. Con tmux, puede lograr una productividad casi sin mouse una vez que lo domine.
Me encantaría profundizar en tmux, pero eso está fuera del alcance de este artículo. En su lugar, le daré algunos artículos que lo ayudarán a comenzar con tmux o mejorar sus habilidades: Comenzando con tmux por Linuxize, Beneficios de usar tmux por Keegan Lowenstein y Una guía minimalista para usar tmux por Peter Jang.
