Probabilmente vuole sapere quando il server è a corto di spazio su disco. Una soluzione semplice è quella di configurare un cron job per l’esecuzione giornaliera e inviare le notifiche su Slack se ci sono problemi.
Ottenere Spazio su Disco Con Il Comando df
Il comando per la visualizzazione di spazio su disco su Linux è il comando df-h (per l’output in un formato leggibile):
Questo elenca ogni filesystem montato, quanto è grande il disco fisico è, e quanto viene utilizzato.
Per limitare la produzione di uno specifico filesystem (in questo caso, la radice) è possibile eseguire df /. Tuttavia, questo restituisce la riga di intestazione, in modo che è possibile filtrare fuori che con grep:
Quindi, selezionare la quinta colonna (la percentuale) con awk, e rimuovere il simbolo di percentuale con sed. Questo ti dà un comando che restituisce un numero che rappresenta la quantità di disco principale è piena:
df / | grep / | awk ‘{ print $5}’ | sed ‘s/%//g’
Che, in questo caso, sarebbe tornato “39“. Se si desidera modificare il disco di questo comando monitor, è necessario modificare il primo df istruzione.
Configurare Riga Di Comando Slack Notifiche
Il modo più semplice per ottenere un Allentamento delle notifiche di lavoro è con webhooks. Webhooks consentono di inviare le notifiche come inviare le richieste a un URL senza dover gestire utenti bot o OAuth. È possibile formattare i messaggi JSON e POST con curl.
Da Slack API portale, creare una nuova app, seleziona la tua area di lavoro, per aggiungere, e dargli un nome. Questo è ciò che vi mostra quando i messaggi, in modo da prendere qualcosa di interessante.
Una volta che avete la vostra app, trovare “in Arrivo Webhooks” della scheda “Aggiungi funzionalità.”
Questo vi permetterà di creare un nuovo webhook, e dovrete scegliere quale canale dovrebbe postare. È possibile creare un nuovo canale per bot notifiche, o aggiungere al proprio DMs.
Una volta che avete l’URL, copia della richiesta di esempio per verificare che funziona. Si dovrebbe vedere “Ciao Mondo!” nel canale selezionato. Se è così, il margine di flessibilità è buona per andare.
Mettere Tutto Insieme
Per rendere il vostro server effettivamente la notifica, è necessario creare uno script che è possibile eseguire con un job di cron quotidiano. Ecco la shell script, meno la notifica di comando:
#!/bin/bash
CORRENTE=$(df / | grep / | awk ‘{ print $5}’ | sed ‘s/%//g’)
SOGLIA=90
if [ “$CORRENTE” -gt “$SOGLIA” ] ; then
fi
Questo script set di due variabili, la CORRENTE (per l’output del comando df dall’alto) e la SOGLIA (per un valore che si può configurare). E poi controlla se il valore corrente è superiore alla soglia, e viene eseguito un comando di se.
È possibile impostare la notifica per essere quello che vuoi, ma qui è un esempio—non è compreso il webhook URL, che dovrai incollare alla fine (senza alcun flag obbligatorio):
curl-X POST -H ‘Content-type: application/json’ –dati “{“testo”:”server `$(hostname)` è attualmente a ${CURRENT}% della capacità del disco.”}”
Questo invierà un ben formattato notifica del tuo webhook designato del canale, tra cui l’hostname del server e l’attuale capacità del disco.
È possibile incollare questo comando se l’istruzione di script di cui sopra, rende il tutto insieme come così:
#!/bin/bash
CORRENTE=$(df / | grep / | awk ‘{ print $5}’ | sed ‘s/%//g’)
SOGLIA=90
if [ “$CORRENTE” -gt “$SOGLIA” ] ; then
curl-X POST -H ‘Content-type: application/json’ –dati “{“testo”:”server `$(hostname)` è attualmente a ${CURRENT}% della capacità del disco.”}”
fi
Salvare questo come diskspace.sh nella vostra home directory, e assicurarsi che si dispone di autorizzazioni di esecuzione con chmod +x diskpace.sh. Aperto fino crontab con il comando crontab-e e aggiungere la seguente riga alla fine:
0 * * * * ~/diskspace.sh
Questo permetterà di eseguire lo script ogni ora per controllare se il disco è pieno. Ma sarà solo ottenere le notifiche se è pieno, in modo da poter testare se funziona lo script tramite l’impostazione di SOGLIA al di sotto della corrente di utilizzo del disco e di eseguirlo manualmente.
Per ulteriori notifiche, è possibile rendere lo script di inviare i risultati di df -h, formattato bene in una casella codice, semplicemente aggiornando il curl dichiarazione:
curl-X POST -H ‘Content-type: application/json’ –dati “{“testo”:”server `$(hostname)` è attualmente a ${CURRENT}% della capacità del disco.n “`$(df -h)“` “}”
Di mostrare in gioco come:
Dal momento che il comando viene eseguito lo script può essere quello che vuoi essere, si potrebbe anche configurare le notifiche e-mail utilizzando un gestore di posta elettronica come Postfix, o qualsiasi altro feed che supporta webhooks.