Linux
Come usare il comando df in Linux / Unix {con esempi}

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:
Filesystem 1K-blocks Used Available Use% Mounted on devtmpfs 10240 0 10240 0% /dev shm 3702044 0 3702044 0% /dev/shm rpool/ROOT/alpine 471240576 96435456 374805120 20% / tmpfs 740412 220 740192 0% /run /dev/sda1 91869 28015 56686 33% /boot
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 (Usato A 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 3133726266 83069592 3050656673 3% /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
Filesystem Size Used Avail Capacity Mounted on zroot/ROOT/default 3.3T 129G 3.1T 4% / devfs 1.0k 1.0k 0B 100% /dev zroot/tmp 3.1T 164k 3.1T 0% /tmp zroot 3.1T 131k 3.1T 0% /zroot zroot/rsnapshot 3.2T 85G 3.1T 3% /rsnapshot zroot/backuplxdimages 3.5T 350G 3.1T 10% /backuplxdimages zroot/jails 3.1T 131k 3.1T 0% /jails zroot/usr/home 3.2T 33G 3.1T 1% /usr/home zroot/var/crash 3.1T 638M 3.1T 0% /var/crash zroot/var/mail 3.1T 257k 3.1T 0% /var/mail zroot/var/audit 3.1T 131k 3.1T 0% /var/audit zroot/var/log 3.1T 2.6M 3.1T 0% /var/log zroot/usr/ports 3.1T 1.0G 3.1T 0% /usr/ports zroot/var/tmp 3.1T 131k 3.1T 0% /var/tmp zroot/usr/src 3.1T 131k 3.1T 0% /usr/src zroot/jails/dnscrypt 3.1T 887M 3.1T 0% /jails/dnscrypt zroot/jails/fullbasejail 3.1T 692M 3.1T 0% /jails/fullbasejail devfs 1.0k 1.0k 0B 100% /jails/dnscrypt/dev
Stampa tipo di filesystem
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:
Filesystem Type Inodes IUsed IFree IUse% Mounted on udev devtmpfs 2.1M 317 2.1M 1% /dev tmpfs tmpfs 2.1M 556 2.1M 1% /run /dev/xvda1 ext4 41M 105k 41M 1% / tmpfs tmpfs 2.1M 1 2.1M 1% /dev/shm tmpfs tmpfs 2.1M 3 2.1M 1% /run/lock tmpfs tmpfs 2.1M 18 2.1M 1% /sys/fs/cgroup /dev/loop0 squashfs 17 17 0 100% /snap/amazon-ssm-agent/2996 /dev/loop1 squashfs 16 16 0 100% /snap/amazon-ssm-agent/3552 /dev/loop3 squashfs 13k 13k 0 100% /snap/core/10958 /dev/loop4 squashfs 11k 11k 0 100% /snap/core18/1988 /dev/loop5 squashfs 11k 11k 0 100% /snap/core18/1997 /dev/loop6 squashfs 1.6k 1.6k 0 100% /snap/lxd/20371 tmpfs tmpfs 2.1M 3 2.1M 1% /var/snap/lxd/common/ns /dev/loop8 squashfs 13k 13k 0 100% /snap/core/11081 /dev/loop2 squashfs 1.6k 1.6k 0 100% /snap/lxd/20400 tmpfs tmpfs 2.1M 22 2.1M 1% /run/user/1000
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:
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 default ALERT=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 device df -H | grep -vE '^Filesystem|tmpfs|udev' | awk '{ print $5 " " $1 }' | while read -r output; do usep=$(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" echo echo "<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) " fi done
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:
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!
You may like
Cerca nel sito
Categorie

Come cambiare le foto delle dimensioni della miniatura su iPhone e iPad

Esegui Mac OS X 10.2 Jaguar in un browser Web

Come interrompere le foto che migliorano l’iPhone dalla fotocamera

Come personalizzare il cursore del mouse Mac con Mousescape

MacOS Sequoia 15.4.1 Aggiornamento rilasciato con correzioni di bug e sicurezza

iOS 16.7.11, iOS 15.8.4 e iPados 17.7.6 Aggiornamenti di sicurezza rilasciati per iPhone e iPad più vecchi

Come disabilitare le categorie di posta su Mac

Come disattivare le categorie di posta su iPad

Come installare Xed su Kubuntu

MacOS Sonoma 14.7.5 e MacOS Ventura 13.7.5 Aggiornamenti di sicurezza rilasciati
Di tendenza
-
Apple4 anni ago
Non riesci a scaricare app su iPhone o iPad? Ecco come risolverlo
-
Apple4 anni ago
Il microfono dell’iPhone non funziona? Ecco come risolvere e risolvere i problemi del microfono di iPhone
-
Apple4 anni ago
Come disattivare la suoneria per un singolo contatto su iPhone con un trucco suoneria silenzioso
-
Apple4 anni ago
Correggi l’errore “Impossibile installare l’aggiornamento” per iOS e iPadOS