Come tmux ti aiuta a gestire il tuo server Cloudways tramite SSH
Pubblicato: 2020-03-06
Questo articolo integra ed estende un video che ho creato sull'utilizzo di SSH e tmux per la gestione dei miei server Cloudways. Nel video, puoi guardarmi mentre uso tmux per gestire le connessioni SSH a più server Cloudways e utilizzare lo strumento da riga di comando htop per analizzare il carico del server.
Puoi guardare il video completo qui:
Poiché in questa conversazione c'è molto di più rispetto a ciò che ho trattato nel video, ho voluto scrivere questo articolo gratuito e fornire maggiori informazioni sul motivo per cui sto usando tmux e perché mi affido a SSH per l'amministrazione del server.
Per darti un po 'di background, non sono un amministratore di server per formazione, nemmeno uno sviluppatore web qualificato. Tutto quello che faccio è da autodidatta. Per me, imparare facendo è il mio approccio preferito per acquisire competenze o affrontare le sfide che sto affrontando. Non sono più un amico dell'istruzione formale (ho lasciato un master in sicurezza informatica) e invece credo nell'essere coinvolti con la tecnologia per capire come funziona.
Tieni a mente questo approccio mentre guardi il video e leggi questo articolo. Come vedrai, ho diviso l'articolo in due sezioni. Ciascuno potrebbe essere un articolo molto lungo o probabilmente più articoli da solo, ma ho pensato che andassero bene insieme in questo contesto.
- Gestire il tuo server tramite SSH
- Perché dovresti usare la riga di comando?
- Caso d'uso: debug del carico del server utilizzando htop
- Caso d'uso: utilizzo di WP-CLI su server Cloudways
- Perché ho consigliato tmux?
Gestire il tuo server tramite SSH
Uno dei vantaggi dell'utilizzo di Cloudways per l'hosting è che hai accesso da riga di comando ai tuoi server e alle tue applicazioni. Sebbene non sia un accesso root, puoi fare molte cose sulla riga di comando.
Dal mio punto di vista, è ragionevole che non ottenga l'accesso root ai miei server Cloudways. Immagina come sarebbe la manutenzione di 20k server se ogni amministratore del server installasse i propri strumenti e pacchetti. Questa è un'impresa impossibile da raggiungere. Detto questo, Cloudways ci dà accesso a WP-CLI e molti altri strumenti standard. E questo è molto su cui lavorare per mantenere i tuoi server e rimanere informato su ciò che stanno facendo i server.
Mi ci è voluto un po' di tempo per capire i vantaggi della gestione dei miei server tramite SSH, ma ora non vedo nessun altro modo per gestire la questione. I miei motivi principali per andare sulla riga di comando sono:
- Non devo aspettare che un'applicazione web si carichi per vedere cosa voglio vedere.
- L'accesso è gestito tramite chiavi SSH, quindi non devo inserire la mia password inutilmente.
- Posso mantenere le sessioni SSH in esecuzione e non devo preoccuparmi di accedere e uscire.
- Ho accesso a WP-CLI e posso fare cose che non posso fare nella normale dashboard di WP Admin.
- Posso automatizzare l'esecuzione delle attività utilizzando cron job e script.
- Non devo allontanare le mani dalla tastiera per usare il mouse e posso tenerle rilassate.
Si prega di notare che come prerequisiti, si dovrebbe avere una qualche forma di client SSH installato. Se utilizzi Linux o Mac, puoi semplicemente utilizzare le applicazioni Terminal preinstallate. Se sei un utente Windows come me, puoi installare PuTTY o utilizzare Bash fornito con il sottosistema Windows per Linux (che è quello che preferisco).
Se non hai voglia di installare alcun software aggiuntivo, puoi anche aprire un terminale SSH dalla Console Cloudways, ma non è una soluzione che consiglierei per l'uso quotidiano. Come vedrai, il bello nell'usare un'interfaccia a riga di comando è non dover accedere a un'applicazione web come Cloudways Console.
Perché dovresti usare la riga di comando?
L'uso della riga di comando all'inizio sembrava molto intimidatorio. Questo vale per l'amministrazione del server come per l'utilizzo della riga di comando sul mio PC o Mac locale. La maggior parte delle mie conoscenze sulla riga di comando proviene da tutorial che ho letto su Internet o da un mio amico che lavora in Cisco. È tutto imparare facendo.
Soprattutto quando si configura un server o un servizio come un server Web o una cache lato server, è facile rompere le cose. Non sapere cosa stavo facendo e non avere alcuna esperienza con l'utilizzo di strumenti da riga di comando non mi ispirava necessariamente fiducia nel provare a gestire i miei server tramite SSH.
Alla fine ho avuto la sbornia e ho scoperto i vantaggi dell'utilizzo della riga di comando seguendo tre regole:
- Fai sempre un passo alla volta e cerca di capire esattamente cosa stai facendo in questo passaggio.
- Avere sempre un punto di ripristino o un backup nel caso in cui si rompano le cose.
- Testare sempre in un ambiente sicuro e non eseguire mai per la prima volta uno strumento da riga di comando su un sito Web live.
Con quelle regole, sapevo che niente poteva davvero andare storto. Ho creato una versione di staging del mio sito Web live su Cloudways utilizzando la funzionalità " Clone " e ho appena seguito il loro tutorial sull'accesso tramite SSH. Una volta effettuato l'accesso, ho iniziato a giocare con WP-CLI e altri semplici strumenti di gestione del server come htop.
Se segui un approccio simile, dovresti essere in una buona posizione per imparare in sicurezza come usare la riga di comando. Aiuta avere un background nello sviluppo o nell'IT, ma non penso che sia necessario. Pensa semplicemente alla riga di comando come a un modo per interagire con il tuo computer, proprio come stai facendo con il mouse sul desktop. Soprattutto con WP-CLI , è facile fare i primi passi sulla riga di comando e vedere i risultati sulla dashboard di WP Admin.
Caso d'uso: debug del carico del server utilizzando htop
Nel video vedrai che sto usando lo strumento htop per analizzare l'utilizzo delle risorse del server. htop è uno strumento standard che ti fornisce informazioni in tempo reale su ciò che sta accadendo sul tuo server. Considerando che i dati di monitoraggio della piattaforma Cloudways hanno talvolta dei leggeri ritardi, è estremamente utile saperne di più sull'utilizzo di htop .
Ogni volta che il bot di Cloudways mi notifica che l'utilizzo della CPU o della RAM aumenta, accedo al rispettivo server tramite SSH ed eseguo htop. In pochi secondi, posso identificare il processo e l'applicazione che occupano le risorse. Quello che mi richiederebbe un minuto o due utilizzando la piattaforma web Cloudways viene eseguito entro 10-20 secondi.

Ecco come appare htop in pratica:

Il processo di debug quindi consiste nell'identificare l'applicazione che occupa quantità insolite di risorse del server tramite htop ed esaminarla in modo più dettagliato. Se vedi un processo PHP di quell'applicazione che occupa la CPU o la RAM, sai che è probabilmente qualcosa correlato a un plug-in WP o al tuo tema. È spesso il caso che i processi pianificati tramite WP-Cron si siano accumulati e ora vengano eseguiti tutti in una volta, sovraccaricando così il tuo server.
Se vedi un processo MySQL o MariaDB che occupa le risorse del server, sai che non devi guardare nei plugin o nel tema ma nel database. Ho visto i database perdere i loro indici e quindi causare l'esecuzione estremamente lenta delle query SQL. Potrebbero volerci anni per identificare le fonti del problema se non sai se è PHP o MySQL a causare i problemi.
Come puoi immaginare, questa è solo la punta dell'iceberg di ciò che htop può fare. Ecco un elenco di esempi pratici htop che portano il mio esempio al livello successivo.
Caso d'uso: utilizzo di WP-CLI su server Cloudways
Sapere come utilizzare WP-CLI può essere un vero punto di svolta per il tuo approccio di sviluppo quotidiano. Installare un WP Vanilla senza muovere il mouse? Nessun problema. Eliminazione di tutti i transitori con l'installazione di un plug-in aggiuntivo? Facile. Analizzando quali hook rallentano maggiormente il tempo di caricamento del tuo sito web? Puoi farlo anche con WP-CLI.
È davvero sorprendente che Cloudways ci dia accesso a WP-CLI tramite la riga di comando. Puoi facilmente creare strumenti che installano lo stack e il tema di plugin di WordPress predefiniti. Oppure puoi utilizzare WP-CLI per scaricare un backup del database del tuo sito in pochi secondi o minuti (beh, questo dipende dalle dimensioni del tuo database).
Ecco il trucco: devi usare la riga di comando per accedere a WP-CLI. E quindi devi accedere al tuo server tramite SSH per eseguire i comandi WP-CLI sui tuoi siti Web ospitati su Cloudways.
Se non ci sono altri motivi per familiarizzare con la riga di comando e iniziare a utilizzare SSH per gestire i server, dovrebbe essere WP-CLI. Ti faccio solo tre esempi che varrà la pena provare:
1. Ottimizzazione e riparazione del database
Poiché non riceviamo PhpMyAdmin su Cloudways, è utile avere la possibilità di ottimizzare e riparare il database di WordPress utilizzando WP-CLI. Usando wp db optimization e wp db repair , puoi velocizzare e stabilizzare il tuo database.
2. Creazione di un tema figlio in pochi secondi
Sì, puoi creare un tema figlio creando e caricando manualmente una nuova directory con i rispettivi style.css e functions.php in wp-content/themes – ma perché preoccuparsi se puoi eseguire un semplice comando che gestisce tutto per te?
Non più guardare il Codex per verificare se le specifiche sono cambiate, non più accessi SFTP e trasferimenti di file. Basta eseguire il seguente comando nella riga di comando e il tema figlio è pronto per essere utilizzato:
wp scaffold child-theme SLUG –parent_theme=SLUG –theme_name=TITLE –author=FULL-NAME –author_uri=URI –theme_uri=URI –activate –force
Nota che questo comando attiverà il tema figlio per impostazione predefinita. Se non vuoi farlo, ometti "–activate –force" alla fine del comando.
3. Creare contenuti fittizi per scopi di sviluppo
Tutti gli sviluppatori hanno bisogno di dati con cui lavorare durante le fasi di sviluppo. E se non dovessi creare e duplicare manualmente post e pagine nella dashboard di amministrazione di WP? E se WP-CLI potesse creare qualsiasi quantità di dati fittizi per te con un semplice comando?
Eseguendo wp post generate –count=10 puoi generare dieci post demo in pochi secondi. La stessa funzionalità funziona per la creazione di pagine, dati fittizi WooCommerce e ti consente persino di aggiungere contenuti lorem ipsum ai post.
Semplicemente usando curl http://loripsum.net/api/4 | wp post generate –post_content –count=10 creerà 10 post che hanno ciascuno quattro paragrafi di testo Lorem Ipsum.
Perché ho consigliato tmux?
Spero che gli esempi che ho fornito sopra siano sufficienti per entusiasmarti nel provare SSH per mantenere i tuoi server Cloudways. Permettetemi di approfondire questo articolo e di parlare del motivo per cui sto usando tmux per gestire le mie sessioni SSH.
In breve, tmux ti consente di gestire più sessioni di terminale contemporaneamente. Ciò significa che quando fai qualcosa nel terminale mentre sei in una sessione tmux, tmux terrà traccia di ciò che stai facendo. Anche se chiudi accidentalmente il terminale, la tua sessione non andrà persa. Puoi semplicemente tornare da dove eri rimasto con un comando e continuare a lavorare.
tmux ti consente anche di creare sessioni di script. Ad esempio, se si tende a eseguire ripetutamente gli stessi comandi per configurare ambienti di sviluppo, è possibile automatizzare tali comandi utilizzando tmux.
Ad essere sincero, non sono sicuro che imparerò mai tutto ciò che tmux ha da offrire, semplicemente perché è così tanto. È simile a Google Spreadsheets o MS Excel: sappiamo tutti quanto siano potenti questi strumenti, ma utilizzano forse il 5% delle loro funzioni su base giornaliera. Tuttavia, ne so abbastanza da usare tmux nel mio sviluppo quotidiano di WordPress .
Come puoi vedere nel video, uso tmux per tenere traccia delle mie sessioni SSH. Ciò mi evita di accedere ripetutamente ai miei server Cloudways. Mi collego di nuovo alla sessione tmux chiamata "Cloudways" e continuo a lavorare sui miei server. Nessuna magia coinvolta, ma anche questo piccolo ritocco mi fa risparmiare tempo ogni giorno. Faccio lo stesso per i miei Raspberry Pi privati a casa (sono un secchione della casa intelligente nel mio tempo libero).
tmux è cool perché ti permette di risparmiare tempo, diventare più produttivo e riduce i movimenti delle mani durante il giorno. Se sei come me, ti viene facilmente dolore al polso per le lunghe giornate al PC. Anche con un mouse ergonomico, non andrebbe via per me. Ciò che ha funzionato, però, è stato ridurre i movimenti che stavo facendo con le mani.
Passare la mano destra dalla tastiera al mouse ogni tanto sembrava sempre un'interruzione del flusso. Ho dovuto pensare a dove mettere la mano destra, c'era una leggera tensione al polso e sono uscito dal flusso di scrittura. Con tmux, puoi ottenere una produttività quasi senza mouse una volta che ci hai preso la mano.
Mi piacerebbe approfondire tmux, ma questo esula dallo scopo di questo articolo. Invece, ti darò alcuni articoli che ti aiuteranno a iniziare con tmux o a migliorare le tue abilità: Iniziare con tmux di Linuxize, Vantaggi dell'uso di tmux di Keegan Lowenstein e Una guida minimalista all'uso di tmux di Peter Jang.
