disk-space-report/README.md

106 lines
3.3 KiB
Markdown

# Disk Space Report Script
A comprehensive disk space analysis tool for Ubuntu/Linux systems that helps identify storage usage patterns and suggests cleanup opportunities.
## Features
- **APT Cache Analysis**: Estimates size of package cache that can be cleared
- **Package Management**: Identifies old installed packages taking up space
- **Journal Log Analysis**: Checks system journal logs for cleanup opportunities
- **Temporary Files Check**: Analyzes temporary directories for cleanup
- **Docker Volume Analysis**: Identifies unused Docker volumes consuming space
- **Docker Log Management**: Finds large Docker log files and suggests rotation
- **Large Directory Discovery**: Lists directories consuming significant space
- **Automatic Report Upload**: Uploads results to Hastebin for easy sharing
## Requirements
- Ubuntu/Linux system
- `sudo` privileges for comprehensive analysis
- `docker` (optional, for Docker-related analysis)
- `jq` for JSON parsing (for Hastebin upload)
- `curl` for report uploading
## Installation
```bash
# Clone the repository
git clone https://github.com/yourusername/disk-space-report.git
cd disk-space-report
# Make the script executable
chmod +x disk-check.sh
```
## Usage
```bash
./disk-check.sh
```
The script will:
1. Analyze various system components for space usage
2. Generate a comprehensive report
3. Save the report to `/tmp/disk_space_report.log`
4. Upload the report to Hastebin and provide a shareable URL
## What It Analyzes
### System Components
- **APT Cache** (`/var/cache/apt`): Downloaded package files
- **Package Lists** (`/var/lib/apt/lists`): Package index files
- **Journal Logs**: System logging data
- **Temporary Files** (`/tmp`, `/var/tmp`): Temporary system files
### Docker Components (if Docker is installed)
- **Unused Volumes**: Dangling Docker volumes
- **Large Log Files**: Docker container logs over 1GB
### Directory Analysis
- **Large Directories**: Directories consuming more than 5GB and 10GB
- **Home Directory Analysis**: Large directories in user home folders
## Sample Output
The script provides estimates like:
```
Estimating the size of the apt cache:
1.2G /var/cache/apt
Estimating the size of journal logs:
Archived and active journals take up 2.1G in the file system.
Directories in / consuming more than 5GB:
7.2G /var/lib/docker
12G /usr/share
```
## Cleanup Suggestions
Based on the analysis, you can:
1. **Clear APT cache**: `sudo apt clean`
2. **Remove old packages**: `sudo apt autoremove`
3. **Clean journal logs**: `sudo journalctl --vacuum-time=30d`
4. **Clear temporary files**: `sudo rm -rf /tmp/*` (use with caution)
5. **Remove unused Docker volumes**: `docker volume prune`
6. **Truncate Docker logs**: Use the provided command in the script output
## macOS Version
For macOS users, there's also a `disk-check-macos.sh` version that provides similar functionality adapted for macOS systems.
## Safety Notes
- This script only **analyzes** disk usage - it doesn't delete anything
- Always review suggested cleanup commands before running them
- Some cleanup operations cannot be undone
- The script requires `sudo` for comprehensive system analysis
## Contributing
Contributions are welcome! Please feel free to submit pull requests or open issues for bugs and feature requests.
## License
This project is licensed under the MIT License.