Checking disk usage on a Linux server is essential to ensure that your system has sufficient storage space for smooth operation. Here’s a step-by-step guide on how to monitor disk usage effectively:
1. Using the df command
The df (disk free) command provides a summary of the disk space usage on your server.
$ df -hFilesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 15G 30G 32% /
tmpfs 1.9G 1.3M 1.9G 1% /dev/shm
/dev/sdb1 100G 70G 30G 70% /data
- Filesystem: The name of the disk or partition.
- Size: Total space available on the disk.
- Used: Space currently used on the disk.
- Avail: Space available for use.
- Use%: Percentage of disk used.
- Mounted on: Directory where the filesystem is mounted.
2. Using the du command
The du (disk usage) command gives you detailed information about disk usage by individual directories and files.
$ du -sh /path/to/directory
1.5G /path/to/directory
The -s option provides a summary, and the -h option makes the output human-readable.
To check the disk usage of all directories within a specified path:
$ du -h /path/to/directory
1.5G /path/to/directory
1.0G /path/to/directory/subdirectory1
500M /path/to/directory/subdirectory2
3. Using lsblk for detailed information
The lsblk command lists all block devices, including partitions and their mount points.
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
└─sda1 8:1 0 50G 0 part /
sdb 8:16 0 100G 0 disk
└─sdb1 8:17 0 100G 0 part /data
This will provide detailed information on the available storage devices, their sizes, and mount points.
4. Using ncdu for an interactive approach
ncdu is a disk usage analyzer that provides an interactive interface to explore disk usage in a directory.
$ ncdu /path/to/directory
--- /path/to/directory -----------------------------------------
1.5 GiB [##########] /subdirectory1
500.0 MiB [### ] /subdirectory2
1.0 GiB [#### ] /subdirectory3
2.0 GiB [##########] .
Install ncdu if it’s not already available:
$ sudo apt install ncdu # For Debian/Ubuntu-based systems
$ sudo yum install ncdu # For CentOS/Red Hat-based systems