We utilizzare il comando df per trovare lo spazio su disco totale e lo spazio disponibile su un file system Linux/Unix. Vediamo come utilizzare il comando df per visualizzare la quantità di spazio libero rimasto sul tuo file system Linux, macOS, *BSD e Unix. Spiegheremo anche come automatizzare il monitoraggio dello spazio su disco e inviare un avviso e-mail o una notifica push al tuo dispositivo mobile.
Il df è uno strumento essenziale per uno sviluppatore in quanto riporta la quantità di spazio su disco utilizzato e disponibile su file Linux o file system Unix.
Cos’è il comando df?
Il df è l’acronimo di disk free.
Il comando df indica la quantità di spazio utilizzato e disponibile sul file system. Un filesystem non è altro che una gerarchia di directory. Ad esempio, la figura 01 mostra tutto ciò che è montato sul mio laptop Linux nella directory principale (/), che è la directory superiore nella gerarchia delle directory che utilizzano il comando tree. Alcuni filesystem come /mirror-nixcraft-m6700 o /media si trovano fisicamente su diverse partizioni/dischi USB o su un altro computer in rete.
Figura 01: una gerarchia di directory con / (root) come directory principale
Scopo
Utilizzare il comando df per visualizzare lo spazio disponibile su un file system:
Visualizza lo spazio utilizzato.
Visualizza lo spazio libero su disco.
Mostra quali filesystem sono montati.
Scopri se è stata raggiunta la capacità del disco su una partizione o su altri dispositivi in rete.
Elenca il numero di inode ancora disponibili per Linux e Unix box
Scopri se c’è spazio sufficiente su una determinata partizione in modo che gli sviluppatori o gli amministratori di sistema possano installare/aggiornare le app
Invia avvisi e-mail o messaggi di testo utilizzando uno script shell o uno script Perl quando lo spazio su disco è esaurito.
Sintassi
La sintassi di base per il comando df è semplice: df df /dir df [option] [/dev/DEVICE]
Usando il comando df
Per visualizzare le informazioni su tutti i file system Linux o Unix montati, immettere: df L’output potrebbe essere leggermente diverso sulla versione GNU/Linux di df:
Il comando df e lo spazio possono avere le seguenti informazioni per ogni nome di dispositivo:
File system : Il nome del tuo file system/dispositivo.
1K-blocchi : la dimensione in blocchi da un kilobyte.
Usato : quantità totale di spazio allocato e utilizzato dai file esistenti nel file system (FS).
disponibile (UsatoA disposizione) : Spazio totale disponibile (spazio libero) nel file system per la creazione di nuovi file.
Capacità (Utilizzo%) : La percentuale di blocchi utilizzati dalle FS.
Montato su : il punto di montaggio è la directory in cui è montato.
Si prega di notare che alcuni file system avanzati e versioni df possono anche segnalare lo spazio riservato dal sistema.
Esempi
Il comando df ha molte più opzioni. Esaminiamo le opzioni più comunemente utilizzate.
Informazioni sui file system
Per visualizzare informazioni su /avvio o /snapshot file system, eseguire: df /boot df /rsnapshot Ecco cosa vedo:
Filesystem 1K-blocks Used Avail Capacity Mounted on
zroot/rsnapshot 31337262668306959230506566733% /rsnapshot
Possiamo visualizzare le informazioni in vari formati di blocco. Ad esempio, vedi blocchi da 1 Mbyte, esegui: df -m df -m /boot Per blocchi da 1 Gibibyte, esegui: df -g df -g /var Possiamo usare esplicitamente blocchi da 512 byte: df -b df -b /usr Passa il -K per blocchi da 1024 byte (predefinito): df -k df -k zroot/var/log Possiamo specificare il dispositivo ZFS come zroot/var/log o /dev/md0 (Linux RAID) e /dev/sdb1 (partizione Linux) oltre al punto di montaggio FS come /aws_efs: df /aws_efs df zroot/ROOT/default df /dev/md0 df -h /dev/sdb1
Output leggibile dall’uomo
Forse la cosa più importante è l’output “Leggibile dall’uomo” passando il -h opzione. Utilizza suffissi di unità come Byte, Kibibyte, Mebibyte, Gibibyte, Tebibyte e Pebibyte (basato su potenze di 1024). Ottieni la facilità di lettura poiché df riduce il numero di cifre a quattro o meno. Si prega di notare il -H è uguale a -h ma basato su potenze di 1000: df -h # lowercase 'h' df -H # UPPERCASE 'H' df -H zroot/tmp df -H /dev/md0
Vuoi includere il tipo di file system nell’output del comando df? Prova a passare il -T opzione: df -T df -T -H df -T -H zroot/usr/ports df -T -H /dev/md0 I seguenti output indicano che /dev/md0 è formattato come ext4:
Filesystem Type Size Used Avail Use% Mounted on
/dev/md0 ext4 3.9G 350M 3.4G 10% /boot
Un altro output che indica vfat FS sul mio laptop Thinkpad montato su /boot/efi: df -T -H /dev/nvme0n1p1
Filesystem Type Size Used Avail Use% Mounted on
/dev/nvme0n1p1 vfat 998M 46M 952M 5% /boot/efi
Possiamo anche vedere informazioni leggibili dall’uomo per il file system contenente il file /backuplxdimages/ncbz01/01-03-2021/rss-feed-worker-backup.tar.xz: df -HT /backuplxdimages/ncbz01/01-03-2021/rss-feed-worker-backup.tar.xz
Filesystem Type Size Used Avail Capacity Mounted on
zroot/backuplxdimages zfs 3.5T 350G 3.1T 10% /backuplxdimage
Mostra le statistiche sul numero di inode gratuiti e utilizzati
Passa il -io come segue: df -i df -i -H df -i -H -T Ora abbiamo anche il numero di inode:
Mostra tutti i punti di montaggio, inclusi quelli montati con varie bandiere
Passa il -un per vedere tutti i file system: df -a Nella maggior parte dei casi, potresti voler nascondere l’output da filesystem come udev, tmpfs, cgroup, securityfs, lxcfs, devfs e così via. Possiamo farlo usando il comando grep/egrep o passando il comando -t TIPO_FS opzione per limitare l’elenco ai file system di tipo FS_TYPE:: df -T | grep -v squashfs df -T | egrep -v 'squashfs|lxcfs|udev' df -t ext4 df -t zfs df -t zfs,ext4,vfat
Solo guide per i sostenitori di Patreon ????
Nessuna pubblicità e tracciamento
Guide approfondite per sviluppatori e amministratori di sistema su Opensourceflare✨
Unisciti al mio Patreon per supportare i creatori di contenuti indipendenti e iniziare a leggere le ultime guide:
Aderire Patreon ?
Script della shell di avviso del disco
Ecco uno script di shell di esempio che monitora l’utilizzo dello spazio su disco del mio server AWS EC2 e Linode e invia un avviso e-mail e invia una notifica mobile quando l’utilizzo del disco supera il 90%
#!/bin/bash# Name: disk-monitor-script.sh# Usage: Poor mans disk space monitoring script to alert sysadmin/developer before running# out of disk/partition space.# Author: Vivek Gite under GPLv 2.x+## Warning: *** DO NOT USE THIS SCRIPT BLINDLY. *** # *** This script mostly fails in your environment if requirements are not met. *** ## Prerequisite (or as per your set up): # You must have working SMTPD/email routing in place and subscription to pushover# notifications service for Android, iPhone, iPad, etc all:# a) Pushover - https://www.cyberciti.biz/mobile-devices/android/how-to-push-send-message-to-ios-and-android-from-linux-cli/# b) AWS SES - https://www.cyberciti.biz/faq/how-to-send-emails-with-postfix-and-amazon-aws-ses-on-rhel-centos-8/# # Tested on - RHEL 7.x/8.x and Debian/Ubuntu LTS versions # # Last revised - 12/Jan/2017 by Vivek Gite, added $DC_P# -----------------------------------------------------------------------------------------DC_P="AWS"# either AWS or Linode ADMIN="foo@somewhere-tld"FROM="system-user-ec2@my-corp-tld"SUBJECT="Alert out of disk space - $HOSTNAME [${DC_P}]"# Set alert level 90% is defaultALERT=90# See https://www.cyberciti.biz/mobile-devices/android/how-to-push-send-message-to-ios-and-android-from-linux-cli/source/home/scripts/cli_app.sh
# Send html email and push notification to my iPhone/Android devicedf-H|grep-vE'^Filesystem|tmpfs|udev'|awk'{ print $5 " " $1 }'|whileread-r output;
dousep=$(echo"$output"|awk'{ print $1}'|cut-d'%'-f1)partition=$(echo"$output"|awk'{ print $2 }')if[$usep-ge$ALERT]; then(echo"From: $FROM"echo"To: $ADMIN"echo"Subject: $SUBJECT"echo"Content-Type: text/html"echoecho"<html>"echo"<p>Hostname : $HOSTNAME</p>"echo"<p>Date : $(date)</p>"echo"<p>Running out of disk space on: <strong>$partition</strong> <span style="color: rgb(255, 0, 0);">${usep}</span>%</p>"echo"<p><h4>Current disk space usage:</h4>"echo"$(df -H | column -t)"echo"</p>"echo"<p><h4>Current memory usage:</h4>"echo"$(free -m)"echo"</p>"echo"You own me one."echo"<p>-- $0</p>"echo"</html>"echo)|sendmail-f"$FROM""$ADMIN"
push_to_mobile "$0""Alert out of disk space - $HOSTNAME [${DC_P}]
Running out of disk space on: $partition (${usep}%)
Current disk space usage:
$(df -H | column -t)
"fidone
Esegui questo script usando cron job: @daily /path/to/disk-monitor-script.sh
Ottenere aiuto sul comando df
Tutto quanto sopra sono opzioni di comando df standard. Tuttavia, la diversa variante di Unix offre opzioni aggiuntive. Puoi leggere queste opzioni digitando il seguente comando man o visualizza la versione BSD/df online che viene utilizzata da *BSD e macOS. Vedi la pagina di aiuto della versione GNU/Linux df qui: man df df --help
Riassumendo
Hai imparato a conoscere il comando df e la sua opzione su Linux o Unix. Abbiamo spiegato vari esempi di comandi df pure. Gli sviluppatori Linux e l’amministratore di sistema Unix devono monitorare l’utilizzo dello spazio su disco. Altrimenti rischi di esaurirlo. Ecco una breve sinossi per i tuoi riferimenti:
Il riepilogo del comando df per Unix/macOS/*BSD e Linux
opzione df
Descrizione
-P
Formato di output POSIX. Usa esplicitamente blocchi da 512 byte.
-K
Blocchi da 1024 byte (predefinito)
-m
Blocchi da 1 Mbyte
-G
Blocchi da 1 Gibibyte
-h
Leggibile dall’uomo (ad es. 1K 243M 2G)
-H
Leggibile dall’uomo con 1000 blocchi
-T
Stampa tipo di filesystem
-t tipo
Limita l’elenco ai file system di tipo TYPE
-un
Mostra tutti i filesystem
-io
Ottieni informazioni su Inode
-TAGLIA B
Imposta la dimensione del blocco. Puoi anche usare il MISURA DEL BLOCCO variabili ambientali. Per esempio, DIMENSIONE BLOCCO=512 df
ANNUNCIO
Ti e piaciuto questo articolo?
Supporta il mio lavoro, facendo una donazione!
Questo sito utilizza i cookie per migliorare servizi ed esperienza dei lettori. Se decidi di continuare la navigazione senza blocchi premi su Accetto, oppure continua tranquillamente la navigazione, nessun dato sulla tua navigazione verrà raccolto.
Quando visiti un sito Web, esso può archiviare o recuperare informazioni sul tuo browser, principalmente sotto forma di cookies. Controlla qui i tuoi servizi di cookie personali.