CommandsLinux

How To Check Disk Space on Linux

Check Disk Space on Linux

Monitoring disk space is a critical aspect of Linux system administration and general usage. Running out of disk space can lead to system instability, application failures, and data loss—situations that every Linux user wants to avoid. Whether you’re managing enterprise servers, development environments, or personal machines, understanding how to check and manage disk space efficiently is an essential skill in your Linux toolkit.

This comprehensive guide will walk you through various methods to check disk space on Linux, from basic command-line utilities to advanced graphical tools. We’ll cover everything from simple space checks to detailed analysis of storage consumption patterns. By the end of this article, you’ll have the knowledge to effectively monitor and manage disk space across your Linux systems.

Understanding Linux Disk Space Fundamentals

Before diving into specific commands and tools, it’s important to understand how Linux organizes and manages storage. This foundation will help you interpret the information provided by disk space utilities.

File System Basics

Linux supports numerous filesystem types, each with its own features and use cases:

  • ext4: The most common Linux filesystem, offering a good balance of performance, reliability, and features
  • XFS: Designed for high-performance with excellent scalability for large files
  • Btrfs: A modern filesystem with advanced features like snapshots and on-the-fly compression
  • tmpfs: A virtual memory-based filesystem for temporary files

Linux organizes storage using partitions and mount points, rather than drive letters as in Windows. Everything in Linux exists within a unified directory structure, with storage devices mounted at specific locations (mount points) in this hierarchy.

Why Disk Space Monitoring Matters

Regular disk space monitoring is crucial for several reasons:

  1. System Stability: When filesystems approach 100% capacity, Linux systems can become unstable or unresponsive
  2. Performance Optimization: As drives fill up, performance may degrade due to filesystem fragmentation
  3. Proactive Management: Regular monitoring helps identify trends in storage consumption before they become critical issues
  4. Capacity Planning: Understanding usage patterns helps in planning for future storage needs

The df Command: Essential Disk Space Reporting

The df (“disk free”) command is the primary tool for checking available disk space on Linux systems. It provides a quick overview of all mounted filesystems and their usage statistics.

What is df?

df is a core utility that reports filesystem disk space usage. It comes pre-installed on virtually all Linux distributions and provides a snapshot of the current storage situation across all mounted filesystems.

Basic Usage and Syntax

To check disk space with df, simply open a terminal and type:

df

This command outputs information about all mounted filesystems, displaying values in 1-kilobyte blocks by default. The output includes columns for the filesystem name, total size, used space, available space, use percentage, and mount point.

Common df Options

df becomes much more useful with these common options:

  • df -h: Displays sizes in human-readable format (KB, MB, GB) instead of blocks
  • df -a: Shows all filesystems, including those with 0 blocks available
  • df -T: Includes filesystem types in the output
  • df -i: Reports inode usage instead of block usage, which is useful when you have many small files
  • df -H: Similar to -h but uses powers of 1000 instead of 1024 (shows slightly larger values)

Practical Examples

To check space on a specific filesystem:

df -h /

This command shows usage information only for the root filesystem.

To filter results by filesystem type:

df -ht ext4

This displays space information only for ext4 filesystems in human-readable format.

For a more focused view showing just the size, used, and available columns:

df -h --output=source,size,used,avail

This provides a cleaner output focusing on just the information you need.

The du Command: Directory-Level Analysis

While df provides a filesystem-level overview, the du (“disk usage”) command allows you to analyze disk usage at the directory and file level, making it invaluable for identifying what’s consuming your disk space.

Understanding du

du estimates file space usage by recursively analyzing directories and files. Unlike df, which examines the filesystem as a whole, du focuses on specific directories, making it perfect for pinpointing space-hogging locations.

Basic Usage and Syntax

The simplest way to use du is:

du

This command shows disk usage for the current directory and all its subdirectories, displaying sizes in kilobytes by default. The output lists each subdirectory with its size.

Essential du Options

du offers several useful options to customize its output:

  • du -h: Shows sizes in human-readable format (KB, MB, GB)
  • du -s: Provides a summary for the specified directory without listing subdirectories
  • du -a: Includes files in the output, not just directories
  • du -c: Produces a grand total at the end
  • du --max-depth=N: Limits the recursion depth to N levels

Practical Applications

To find the largest directories in your home folder:

du -h ~ | sort -hr | head -10

This command analyzes your home directory, sorts the results by size (largest first), and shows the top 10 space consumers.

For a summary of a specific directory:

du -sh /var/log

This shows the total size of the /var/log directory without listing all its contents.

To find large directories with a restricted depth:

du -h --max-depth=1 /var | sort -hr

This command lists the immediate subdirectories of /var sorted by size, making it easier to identify major space users.

Alternative Disk Space Analysis Tools

While df and du are the standard tools for disk space analysis, Linux offers several alternatives that provide enhanced functionality or easier interpretation of results.

The pydf Command

pydf is a colorized version of df that presents disk space information in a more visually appealing format:

sudo apt install pydf  # Install on Debian/Ubuntu
pydf

pydf provides the same information as df but with color-coding and percentage bars, making it easier to quickly assess disk usage patterns.

The ncdu Interactive Analyzer

ncdu (NCurses Disk Usage) is a powerful interactive tool that combines the functionality of du with a user-friendly interface:

sudo apt install ncdu  # Install on Debian/Ubuntu
ncdu /

ncdu provides a navigable interface where you can:

  • Browse directories to explore their contents
  • Sort directories by size
  • Delete files directly from the interface
  • Save scans for later analysis

This makes ncdu particularly valuable for cleaning up disk space on systems with limited storage.

Other Useful Commands

Additional commands that help with disk space analysis include:

  • lsblk: Lists information about all block devices, showing the relationship between disks and partitions
  • fdisk -l: Displays detailed partition information, including sizes and types
  • stat: Provides detailed information about specific files or filesystems
  • btop: A modern system monitor that includes disk usage visualization

Advanced Disk Space Checking Techniques

Beyond basic commands, Linux offers powerful techniques for more sophisticated disk space analysis and management.

Finding Large Files

To locate the largest files on your system:

find / -type f -size +100M -exec ls -lh {} \; | sort -k5 -rh

This command finds all files larger than 100MB and sorts them by size in descending order.

For a more targeted approach within a specific directory:

find /home -type f -size +50M -exec du -h {} \; | sort -hr

Analyzing Disk Usage by File Type

To analyze disk usage by file extension:

find /path -type f -name "*.log" -exec du -ch {} \; | grep total$

This command calculates the total space used by all log files in the specified directory.

Checking Disk Usage by User

To identify which users are consuming the most disk space:

du -hs /home/* | sort -hr

This command shows the size of each user’s home directory.

Monitoring Specific System Directories

Some system directories often grow unchecked and require regular monitoring:

du -sh /var/log
du -sh /var/cache/apt
du -sh /tmp

Regular monitoring of these locations helps prevent unexpected disk space issues.

Remote Server Disk Space Management

Managing disk space on remote servers requires additional considerations and techniques.

Checking Disk Space via SSH

To check disk space on a remote server:

ssh user@remote_server "df -h"

This executes the df command on the remote server and returns the results to your local terminal.

Monitoring Multiple Servers

For monitoring multiple servers, you can use a simple script:

#!/bin/bash
SERVERS="server1 server2 server3"
for server in $SERVERS; do
    echo "===== $server ====="
    ssh user@$server "df -h /"
done

This script checks the root filesystem usage across multiple servers.

Automated Alerts and Monitoring

Setting up automated monitoring prevents disk space emergencies:

#!/bin/bash
THRESHOLD=90
FILESYSTEM="/"
USAGE=$(ssh user@server "df -h $FILESYSTEM | grep -v Filesystem | awk '{print \$5}'" | cut -d'%' -f1)

if [ $USAGE -gt $THRESHOLD ]; then
    echo "Warning: Disk usage on server is at $USAGE%" | mail -s "Disk Space Alert" admin@example.com
fi

This script sends an email alert when disk usage exceeds 90%.

Graphical Tools for Disk Space Analysis

For users who prefer graphical interfaces, Linux offers several powerful disk usage visualization tools.

GNOME Disk Usage Analyzer (Baobab)

GNOME Disk Usage Analyzer (also known as Baobab) provides an intuitive visualization of disk usage:

sudo apt install baobab  # Install on Debian/Ubuntu
baobab

This tool scans your filesystem and presents the results in ring charts or treemaps, making it easy to identify large directories and files. You can drill down into directories by clicking on segments of the chart.

Filelight (KDE)

Filelight is KDE’s disk usage visualization tool:

sudo apt install filelight  # Install on Debian/Ubuntu
filelight

Filelight displays disk usage as concentric rings, with each ring representing one directory level deeper. This intuitive visualization helps quickly identify space-consuming directories.

GNOME Disks Utility

The GNOME Disks utility provides disk management capabilities beyond just space checking:

sudo apt install gnome-disk-utility  # Install on Debian/Ubuntu
gnome-disks

This tool allows you to:

  • View disk space usage
  • Manage partitions
  • Benchmark disk performance
  • Check drive health

When to Use GUI vs. Command Line

GUI tools excel at providing visual representations that make patterns immediately obvious, while command-line tools offer:

  • Speed and efficiency for routine checks
  • Ability to be used in scripts and automation
  • Functionality on headless servers and remote systems

Choose based on your specific needs and the context of your work.

Best Practices for Disk Space Management

Effective disk space management goes beyond just checking space—it requires a systematic approach.

Regular Monitoring Schedule

Establish a regular monitoring schedule:

  • Daily checks for critical production systems
  • Weekly reviews for development environments
  • Monthly deep analysis of usage trends

Use automation to ensure consistency in monitoring.

Proactive Space Management

Implement these proactive measures to prevent disk space issues:

  • Configure log rotation to prevent logs from consuming excessive space
  • Regularly clean package caches (e.g., apt clean on Debian-based systems)
  • Set up quotas for users with a history of high disk usage
  • Archive or remove old and unused data

Documentation and Baselines

Document normal usage patterns and establish baselines:

  • Record typical disk usage for each filesystem
  • Document seasonal or cyclical patterns
  • Maintain a list of known large directories and their purpose

This information helps quickly identify abnormal growth.

Scaling Considerations

Plan ahead for growth:

  • Monitor growth rates and project future needs
  • Implement thin provisioning where appropriate
  • Consider cloud storage or network storage for flexible expansion
  • Use Logical Volume Management (LVM) to allow for dynamic resizing

Quick Reference: Linux Disk Space Commands

Here’s a handy reference table of the most important disk space commands:

Command Purpose Common Options
df Check filesystem space usage -h (human-readable), -T (show filesystem type)
du Analyze directory space usage -h (human-readable), -s (summary), –max-depth=N
ncdu Interactive disk usage analyzer Interactive navigation, no common flags needed
lsblk List block devices -f (show filesystem info)
fdisk -l Display partition information Requires root privileges
pydf Colorized df alternative Similar to df options
find Locate large files -size +NM, -type f

Troubleshooting Common Disk Space Issues

Even with good monitoring, disk space problems can arise. Here’s how to address common issues:

No Space Left on Device Errors

If you encounter “No space left on device” errors despite df showing available space, check inode usage:

df -i

Systems can run out of inodes (which track files) even with free disk space.

Inode Exhaustion Problems

To address inode exhaustion:

  • Remove small, unnecessary files
  • Combine small files into archives
  • Consider reformatting with more inodes if the problem is persistent

Hidden Space Consumers

Common hidden space consumers include:

  • Deleted but open files (releasing space requires process restart)
  • Hidden dot directories (like ~/.cache)
  • Docker images and containers
  • Temporary files in /tmp or /var/tmp

Dealing with Deleted but Open Files

To find deleted but open files still consuming space:

lsof | grep deleted

You’ll need to restart the processes holding these files to release the space.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!

r00t

r00t is an experienced Linux enthusiast and technical writer with a passion for open-source software. With years of hands-on experience in various Linux distributions, r00t has developed a deep understanding of the Linux ecosystem and its powerful tools. He holds certifications in SCE and has contributed to several open-source projects. r00t is dedicated to sharing her knowledge and expertise through well-researched and informative articles, helping others navigate the world of Linux with confidence.
Back to top button